【问题标题】:How to disable NDK for a certain project in Android Studio如何在 Android Studio 中为某个项目禁用 NDK
【发布时间】:2019-02-14 00:04:07
【问题描述】:

我正在处理多个项目,其中一些需要安装 NDK。当我在 SDK 管理器中执行此操作时,我的所有非 NDK 项目都无法生成 APK,除非我在 SDK 管理器上删除了 NDK。我尝试在我的 local.properties 中指定和删除 NDK 路径,但什么也没做,我需要将其从 Android Studio 中完全删除才能生成 APK,然后重新下载并为我的 NDK 项目启用它,这很荒谬。有什么办法吗??

【问题讨论】:

  • 你遇到过什么样的“无法生成APK”?请发布相关的错误消息(可能隐藏在日志文件中)。 OTOH,您可以将NDK下载到非标准目录(即不要到Android/sdk/ndk-bundle,并仅针对相关项目在local.properties中手动设置。
  • @NileshRathod 是的,我已经检查过了,但没有任何效果。
  • @AlexCohn Sure 原因:org.gradle.process.internal.ExecException:启动进程“命令”\AppData\Local\Android\Sdk\ndk-bundle\toolchains\mips64el-linux 时出现问题-android-4.9\prebuilt\windows-x86_64\bin\mips64el-linux-android-strip'' 。出于某种原因尝试转换本机库时发生这种情况::app:transformNativeLibsWithStripDebugSymbolForAppRelease'。我没有 c++ 代码,也没有引用它或 NDK,如果我删除 NDK,APK 生成就好了,我不知道为什么它自己添加了这个额外的步骤。

标签: android android-ndk


【解决方案1】:

无法运行mips64el-linux-android-strip

这是known problem,当您拥有最新的 NDK r.17 并且未在根(项目)build.gradle中将 gradle 插件升级到 3.1.2 或更高版本时,会发生这种情况> 脚本。建议使用最新的插件,不仅要兼容最新的 NDK:

buildscript {
  dependencies {
    classpath 'com.android.tools.build:gradle:3.1.2'
  }
}

您还必须更改 gradle/wrapper/gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip v.4.4

解决方法包括使用NDK r.16excluding the mips strips *)

packagingOptions {
    doNotStrip '*/mips/*.so'
    doNotStrip '*/mips64/*.so'
}

*) 作为@Forgen 正确updatedpackagingOptions 不适用于早于 v.2.3 的 Android gradle 插件。但是如果你还在用这个版本,你的问题比mips64严重多了,应该尽快升级。

【讨论】:

  • 这对我来说很有意义,因为它只发生在一个使用旧 gradle 插件的选定项目上,谢谢 Alex。
  • 由于 NDK 不匹配也无法构建。没有按照这里的确切步骤,但是将 gradle 插件升级到最新版本。
猜你喜欢
  • 2015-10-31
  • 2015-03-28
  • 2015-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多