【问题标题】:aarch64-linux-android-strip file Missingaarch64-linux-android-strip 文件丢失
【发布时间】:2017-08-02 01:39:39
【问题描述】:

我更新到 Android Studio 2.3,我的项目出现这些错误

Error:org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'C:\Users\...\AppData\Local\Android\sdk\ndk-bundle\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\bin\aarch64-linux-android-strip''


Error:net.rubygrapefruit.platform.NativeException: Could not start 'C:\Users\...\AppData\Local\Android\sdk\ndk-bundle\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\bin\aarch64-linux-android-strip'


Error:java.io.IOException: Cannot run program "C:\Users\...\AppData\Local\Android\sdk\ndk-bundle\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\bin\aarch64-linux-android-strip" (in directory "E:\projectNmame\app"): CreateProcess error=2, The system cannot find the file specified

谁能帮我解决这个问题?我被这个问题困住了。

【问题讨论】:

  • 我在 Bitrise 上遇到了这个错误,我通过将堆栈更改为 Android 没有 NDK 来解决它。堆栈配置是quay.io/bitriseio/android。希望对某人有所帮助!

标签: android android-studio android-ndk android-gradle-plugin


【解决方案1】:

我有 Android Studio 3.1.2,在我批准 IDE 后建议更新 我得到了下一个错误:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task '...'.

Caused by: org.gradle.process.internal.ExecException: A problem occurred starting process 'command '/Users/.../Library/Android/sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/darwin-x86_64/bin/mips64el-linux-android-strip'

Caused by: net.rubygrapefruit.platform.NativeException: Could not start '/Users/.../Library/Android/sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/darwin-x86_64/bin/mips64el-linux-android-strip'

Caused by: java.io.IOException: Cannot run program "/Users/.../Library/Android/sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/darwin-x86_64/bin/mips64el-linux-android-strip" (in directory "/Users/.../.../.../app"): error=2, No such file or directory

Caused by: java.io.IOException: error=2, No such file or directory

NDK 版本 17.0.4754217 似乎存在问题。

因为我没有在我的项目中使用 ndk 组件,所以解决方案是 从 SDK 管理器中删除 NDK

转到 SDK 管理器 -> SDK 工具选项卡 -> 取消选中 NDK -> 应用。

【讨论】:

  • 帮助我构建和运行集成了 OpenCV 库的项目(在更新到 Android Studio 3.1.2 之前它可以正常工作),但这是一个临时解决方法。这个问题可能与 NDK r17 中的 mips、mips64、armeabi 弃用有关:developer.android.com/ndk/guides/abis#sa
  • 非常感谢@CookieMonster,你的回答拯救了我的一天。
  • 这对我有用,但上帝保佑我必须在此之后实际构建本机代码。谷歌怎么会经常搞砸这种事情? “稳定版”之类的。
【解决方案2】:

我在使用 NDK 版本 17.0.4754217 时遇到了同样的问题(可能在较新的版本上,它不会发生)。 您可以通过在 gradle.build 中添加以下代码来解决此问题:

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

或者

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

如果您使用的是本机代码 (C++),我建议您也添加以下代码:

ndk {
    abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86' // <- only the supported ones
}

确保您不会嵌入任何 MIPS 二进制文件。

【讨论】:

  • 非常感谢好友 :)
  • 这不是同一个问题,而是类似的。正如 OP 报告的那样,您缺少 MIPS 二进制文件(故意在 r17 删除,参见例如github.com/android-ndk/ndk/issues/700),而不是 ARM64。
  • 小修正 - 它应该在 android 闭包下添加,而不仅仅是 build.gradle 中的任何位置
【解决方案3】:

将这些添加到 gradle.build 文件中:

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

【讨论】:

  • 今天我遇到了这个问题。这个简单的解决方案刚刚解决了我的问题。
【解决方案4】:

是的,我在将 NDK 更新到 17.0.4754217 后收到此错误。

我刚刚尝试了使用 v.16 中的复制文件夹 (\android-ndk-r16b-windows-x86_64\android-ndk-r16b\toolchains\mips64el -linux-android-4.9\prebuilt\windows-x86_64) 来自https://developer.android.com/ndk/downloads/older_releases,它对我有用。

不确定是否稳定,但它对我有用,直到等待 Google 的新修复。

【讨论】:

【解决方案5】:

我找到了一个包here,我从中复制了所有丢失的文件,现在它运行良好。

【讨论】:

  • 文件夹 \toolchains\mips64el-linux-android-4.9\prebuilt\windows-x86_64 仅包含 1 个文件。我从 r16b 复制了文件
【解决方案6】:

我必须下载大约 1 GB 的文件才能获得这些小包,所以任何对这些包有疑问的人都可以从下面的链接下载它们,然后简单地将它们解压缩到

sdk\ndk-bundle\toolchains\

mips64el-linus-android

aarch64-linux-android

【讨论】:

  • 谢谢。但这是针对 Windows 的。你有 Mac 版吗?
【解决方案7】:

我通过将 NDK 版本更改为旧版本解决了这个问题。 您可以从 https://developer.android.com/ndk/downloads/older_releases 获取旧版本的 ndk。 NDK 的路径在 android 项目中名为 local.properties 的文件中定义。清空原始 NDK 文件,然后将 oloder 版本的 NDK 存档解压缩到 local.properties 中定义的路径。最后清理并重建项目。

【讨论】:

    【解决方案8】:

    主要原因是上面大家解释的,从r17中移除支持。 简单快捷的解决方案是。

    1. 从 [https://developer.android.com/ndk/downloads/older_releases][1] 下载 NDK 版本 r16
    2. 解压
    3. 从 r16 解压文件夹中复制 toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/ 下的文件
    4. 将编译好的文件粘贴到您的 ndk 目录 (r17) toolchains/mips64el-linux-android-4.9/prebuilt/linux-x86_64/ 文件夹中

    这对我有用。

    【讨论】:

      【解决方案9】:

      我在构建 jenkins slave 时遇到了这个问题。

      我在开发计算机上删除了可以成功构建的NDK,然后我就无法成功构建了。

      所以我用android studio打开jenkins slave上的项目

      download ndk by sdk manager as picture

      下载完成后我的项目就可以构建成功了。

      希望对你有帮助

      【讨论】:

        【解决方案10】:

        对此非常有用的提示是下载

        > android-ndk-r16b

        然后只需将 NDK 路径更改为 android-ndk-r16b

        像我一样:

        C:\Android\android-ndk-r16b

        那么这肯定会拒绝我的第一次应用体验。

        图片显示here

        【讨论】:

          猜你喜欢
          • 2019-01-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-14
          • 1970-01-01
          相关资源
          最近更新 更多