我收到以下指定错误,
E:\SDK\ndk-bundle\build\core\setup-app-platform.mk
错误:(115)*** Android NDK:正在中止。停止。 错误:任务执行失败':un7zip:compileReleaseNdk'。
com.android.ide.common.process.ProcessException:执行进程E:\ sdk \ ndk-bundle \ ndk-build.cmd时出错,参数为{NDK_PROJECT_PATH = null APP_BUILD_SCRIPT = E:\ appRizort \ RizortCardboard \ un7zip \ build \ intermediates \ ndk \ release \ Android.mk APP_PLATFORM = android-25 NDK_OUT = E:\ appRizort \ RizortCardboard \ un7zip \ build \ intermediates \ ndk \ release \ obj NDK_LIBS_OUT = E:\ appRizort \ RizortCardboard \ un7zip \ build \ intermediates \ ndk \ release \ lib APP_ABI = armeabi-v7a,armeabi,x86,arm64-v8a}
答案 0 :(得分:6)
您的NDK_PROJECT_PATH为空,如果您的项目文件夹路径包含空格,则可能会导致此问题。
答案 1 :(得分:3)
APP_PLATFORM
非常重要。故事是described at length in the NDK guide:
此变量包含您要支持的最低Android平台版本。例如,值
android-15
指定您的库使用Android 4.0.3(API级别15)以下不可用的API,并且无法在运行较低平台版本的设备上使用。有关平台名称和相应Android系统映像的完整列表,请参阅Android NDK Native APIs。您应该在module-level build.gradle file的
defaultConfig
或productFlavors
块中设置minSdkVersion属性,而不是直接更改此标志。这样可确保您的库仅供运行适当版本Android的设备上安装的应用使用。 ndk-build工具链使用以下逻辑,根据您正在构建的ABI和您指定的minSdkVersion
选择库的最低平台版本:
- 如果ABI的平台版本等于
minSdkVersion
,则ndk-build使用该版本。- 否则,如果ABI存在低于
minSdkVersion
的平台版本,则ndk-build使用这些平台版本中最高的版本。这是一个合理的选择,因为缺少平台版本通常意味着自上一个可用版本以来本机平台API没有任何更改。- 否则,ndk-build使用高于
醇>minSdkVersion
的下一个可用平台版本。
NDK没有单独的android-25
平台。如果您的最低支持平台为O,则可以选择android-24
或(使用r15 beta),android-26
。如果您的minSdkVersion
较少,或者如果有疑问,请为NDK选择较低的平台,因为NDK平台是向上兼容的。