我在 Big Sur 中使用 Xcode 13 从命令行构建了一个产品,xcodebuild并生成此警告:
warning: Building targets in manual order is deprecated - check "Parallelize build for command-line builds" in the project editor, or set DISABLE_MANUAL_TARGET_ORDER_BUILD_WARNING in any of the targets in the current build to suppress this warning
Run Code Online (Sandbox Code Playgroud)
文档说:
但是,我找不到这样的选项:
我已经定义了一个自定义的网络安全配置,在我的清单包括它作为推荐这里
RES/XML/network_security_config.xml:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">127.0.0.1</domain>
<domain includeSubdomains="true">localhost</domain>
</domain-config>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)
这是我的Android.manifest:
<application android:icon="@drawable/icon"
android:allowBackup="false"
android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_config"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:persistent="true" >
Run Code Online (Sandbox Code Playgroud)
尝试通过HTTP与127.0.0.1进行通信时,即使有这些更改,我也会在logcat中看到这一点:
08-09 10:50:34.395 30791 3607 D NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: true
08-09 10:50:34.397 30791 3607 D NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: true
08-09 10:50:34.401 30791 3607 W DownloadManager: [647] Stop requested with status HTTP_DATA_ERROR: Cleartext HTTP traffic to 127.0.0.1 not permitted
08-09 10:50:34.402 30791 …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,我发布到私人Google Play测试版.我可以安装这个完全相同的APK到我的Nexus 7就好了
adb pm install
但是通过Google Play商店,它标记为与此完全相同的Nexus7
Your device isn't compatible with this version.
这是相同的 apk.我无法弄清楚如何获得有关游戏商店认为它不兼容的原因的任何信息.
我的清单看起来像这样:
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".foobar"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name=".fooservice" android:exported="false" android:enabled="true" android:label="@string/app_name" android:icon="@drawable/icon">
</service>
</application>
Run Code Online (Sandbox Code Playgroud)
有关确定Google Play认为不兼容的原因的任何帮助吗?
我有一个开发人员fcntl(): Bad file descriptor在 AndroidStudio 中构建我们的原生 cpp 代码时看到的遗留应用程序。
我们的构建环境支持使用本地安装的 NDK 以及通过 AndroidStudio 从命令行构建(用于编写脚本和执行日常自动构建)。我们设置local.properties为指向本地安装的 NDK。
我无法确定fcntl错误的原因,并且在运行 NDK r17 时我自己也没有看到它。然后我更新到 NDK r21d(2020 年 6 月)并立即在 AndroidStudio 中看到相同的内容。
fcntl(): Bad file descriptor
[arm64-v8a] Compile++ : vhc_jnilib <= Png.cc
fcntl(): Bad file descriptor
[arm64-v8a] Compile++ : vhc_jnilib <= Jpeg.cc
fcntl(): Bad file descriptor
[arm64-v8a] Compile++ : vhc_jnilib <= MyContainer.cc
fcntl(): Bad file descriptor
[arm64-v8a] Compile++ : vhc_jnilib <= aIdentityInfo.cc
fcntl(): Bad file descriptor
[arm64-v8a] …Run Code Online (Sandbox Code Playgroud) 编辑:这仍然没有得到解决.我怀疑基于评论,我使用旧的NDK(10d)可能是一个问题所以我升级到15c并处理所有问题,以便用clang和新的c ++库编译我的东西.不幸的是ndk-gdb在15c中被破坏了,我试图破解python使其工作并没有让我任何地方.然后我使用了Android Studio 3.0预览版,我回到了以前的位置 - 我可以看到堆栈信息,但所有代码都是在lldb中汇编的.工作必须继续 - 我回来使用logcat进行调试:(
我从墙上的无数次点击中看到了额头受伤的前额.
我会尽量简明扼要,同时提供所有相关信息.如果有任何我没有提供的相关信息,请告诉我.
我正在维护一个Android应用程序作为我工作的一部分.我不得不求助于记录调试本机代码,因为虽然我可以设置断点并点击它们,但我无法查看源或变量信息.
我花了很多时间和谷歌搜索试图了解我错过了什么,但仍然没有运气.
我的构建环境是使用Android NDK r10D的OSX,以及用于构建APK的gradle 3.2.
我正在尝试使用AndroidStudio 3.0 beta 6来安装和调试APK.
我的Android.manifest包含在标记中:
android:debuggable="true"
这是使用-v编译其中一个本机c ++文件以获取详细信息的示例输出:
~/src/libraries/cBase$ make android
Building obj/Binary.ao
Using built-in specs.
COLLECT_GCC=arm-linux-androideabi-g++
Target: arm-linux-androideabi
Configured with: /s/ndk-toolchain/src/build/../gcc/gcc-4.8/configure --prefix=/tmp/ndk-User/build/toolchain/prefix --target=arm-linux-androideabi --host=x86_64-apple-darwin --build=x86_64-apple-darwin --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --with-gmp=/tmp/ndk-User/build/toolchain/temp-install --with-mpfr=/tmp/ndk-User/build/toolchain/temp-install --with-mpc=/tmp/ndk-User/build/toolchain/temp-install --with-cloog=/tmp/ndk-User/build/toolchain/temp-install --with-isl=/tmp/ndk-User/build/toolchain/temp-install --with-ppl=/tmp/ndk-User/build/toolchain/temp-install --disable-ppl-version-check --disable-cloog-version-check --disable-isl-version-check --enable-cloog-backend=isl --with-host-libstdcxx='-static-libgcc -lstdc++ -lm' --disable-libssp --enable-threads --disable-nls --disable-libmudflap --disable-libgomp --disable-libstdc__-v3 --disable-sjlj-exceptions --disable-shared --disable-tls --disable-libitm --with-float=soft --with-fpu=vfp …Run Code Online (Sandbox Code Playgroud) android android-ndk android-debug android-studio android-gradle-plugin
我正在productbuild为 MacOS Mojave 创建 .pkg 安装程序。我已阅读Distribution.xml 文件的架构参考。我成功地使用它来包含自定义欢迎。因此,当我运行时,我知道我的资源路径被正确使用:
productbuild --resources ./res --sign "$PKG_SIGN_ID" --distribution Distribution.xml foo.pkg
但我似乎无法创建自定义背景图像。我尝试过各种 jpg 和 png 图像。
我已经阅读了这个问题和答案,我已经尝试过en.lproj在我的资源目录中有和没有子目录。
我Distribution.xml最终看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<installer-gui-script minSpecVersion="1">
<background file="background.jpg" mime-type="image/jpeg" scaling="tofit"/>
<welcome file="welcome.html"/>
<title>My App</title>
<pkg-ref id="com.foo.myapp"/>
<options customize="never" require-scripts="false"/>
<choices-outline>
<line choice="default">
<line choice="com.foo.myapp"/>
</line>
</choices-outline>
<choice id="default"/>
<choice id="com.foo.myapp" visible="false">
<pkg-ref id="com.foo.myapp"/>
</choice>
<pkg-ref id="com.foo.myapp" version="1.0" onConclusion="none">foo.pkg</pkg-ref>
</installer-gui-script>
Run Code Online (Sandbox Code Playgroud)
这不再可能与莫哈韦沙漠有关吗?
我正在使用24位RGB数据的unsigned char*创建一个NSImage,如下所示:
NSBitmapImageRep *bitmap = [[NSBitmapImageRep alloc]
initWithBitmapDataPlanes:(unsigned char **)&data
pixelsWide:gWidth
pixelsHigh:gHeight
bitsPerSample:8
samplesPerPixel:3
hasAlpha:NO
isPlanar:NO
colorSpaceName:NSCalibratedRGBColorSpace
bytesPerRow:gWidth*3
bitsPerPixel:24];
NSImage *img = [[NSImage alloc] initWithSize:NSMakeSize(gWidth, gHeight)];
[img addRepresentation:bitmap];
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我后来在"数据"中写了更多东西,我知道NSImage并没有复制它.我这样说是因为如果我稍后将所有0写入我的数据缓冲区,那么图像全黑.
我正在与Objective C挣扎,所以如果这是微不足道的话请耐心等待.
如果我制作一份"数据"的本地副本并且永远不会释放它,那么事情就会很好,但显然会泄漏:
unsigned char *copy_of_data = new unsigned char[len];
memcpy(copy_of_data, data, len);
Run Code Online (Sandbox Code Playgroud)
我怎么能:
(1)使initWithBitmapDataPlanes创建自己的副本并处理deallocation?
或者(2)在图像不再需要之后,在适当的时候自己释放数据?
我之前在这里问过基本上相同的问题(不同的 NDK),并认为我正确构建了 openssl,但是当我尝试将其链接到我的应用程序时,我发现我没有正确构建它。
如果我在这里桥接@AlexCohn 的答案,我会从脚本开始setenv_android.sh。
我修改脚本以设置THE_ARCH=arm64-v8a尝试针对 64 位 android 架构。
当我运行脚本时,它找不到一些东西:
ERROR: Failed to find Android cpp. Please edit this script.
ERROR: Failed to find Android gcc. Please edit this script.
ERROR: Failed to find Android g++. Please edit this script.
ERROR: AOSP_STL_INC is not valid. Please edit this script.
ERROR: AOSP_STL_LIB is not valid. Please edit this script.
ANDROID_NDK_ROOT: /Users/spartygw/android-ndk-r19/
AOSP_TOOLCHAIN_PATH: /Users/spartygw/android-ndk-r19//toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin
AOSP_ABI: arm64-v8a
AOSP_API: android-21
AOSP_SYSROOT: /Users/spartygw/android-ndk-r19//platforms/android-21/arch-arm64
AOSP_FLAGS: -funwind-tables -fexceptions -frtti
AOSP_STL_INC: …Run Code Online (Sandbox Code Playgroud)我正在维护一个遗留应用程序,该应用程序在针对 API 28 时构建良好,但在 Q 时失败。
gradle 构建的完整错误如下所示:
> Task :lintVitalRelease
Calling mockable JAR artifact transform to create file: /Users/spartygw/.gradle/caches/transforms-1/files-1.1/android.jar/5fe3ee8a258b0a02d9b262c195a9ab63/android.jar with input /Users/spartygw/Library/Android/sdk/platforms/android-Q/android.jar
> Task :lintVitalRelease FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':lintVitalRelease'.
> Could not resolve all files for configuration ':androidApis'.
> Failed to transform file 'android.jar' to match attributes {artifactType=android-mockable-jar, returnDefaultValues=false} using transform MockableJarTransform
> Cannot create mockable android.jar
Run Code Online (Sandbox Code Playgroud)
我已按照此处设置 Android Q SDK 的指南进行操作。
我正在从 Android Studio 之外的命令行进行构建。 …
我已经读过这个问题,我相信我的问题是不同的。
我有一个 swift 类SwiftUtils.swift,它已经在我的项目中调用 Objective C 代码,并且我有一些 Objective C 代码调用回 Swift。
所以我已经让桥接头的东西都正常工作了。
我的问题是我正在快速构建一个系统菜单,并尝试在我的 AppDelegate 中调用一个方法,如下所示:
@objc func createMenuItem() {
let appDelegate = NSApplication.shared.delegate as? AppDelegate
let status = NSMenuItem(title: "System Status",
action: #selector(appDelegate.showSystemStatus(_:)),
keyEquivalent: "s")
status.target=appDelegate.self
statusItem.menu?.insertItem(status, at: 0)
}
Run Code Online (Sandbox Code Playgroud)
我无法让编译器解析AppDelegate函数的第一行。
Xcode 不断告诉我“在范围内找不到类型‘AppDelegate’”
我的桥接标头:
#ifndef Foo_Bridging_Header_h
#define Foo_Bridging_Header_h
#import <Foundation/Foundation.h>
#import "uiframework/Utils.h"
#import "AppDelegate.h"
#endif /* Foo_Bridging_Header_h */
Run Code Online (Sandbox Code Playgroud)
我的 AppDelegate.h:
#import <Cocoa/Cocoa.h>
#import "Foo-Swift.h"
@interface AppDelegate : NSObject <NSApplicationDelegate>
@property SwiftUtils *utils;
- …Run Code Online (Sandbox Code Playgroud) android ×6
android-ndk ×3
objective-c ×2
adb ×1
android-10.0 ×1
beta-testing ×1
cocoa ×1
google-play ×1
macos ×1
macos-mojave ×1
nexus-7 ×1
nsimage ×1
openssl ×1
productbuild ×1
swift ×1
xcode ×1
xcode13 ×1
xcodebuild ×1