【问题标题】:Expected caller to ensure valid ABI: MIPS预期调用者确保有效 ABI:MIPS
【发布时间】:2019-06-25 03:15:27
【问题描述】:

尝试修复错误时出现错误 -

在带有前缀 mips64el-linux-android 的 ABI 的 NDK 工具链文件夹中找不到工具链

不想升级,因为担心它可能会破坏我的应用程序并且需要使用 NDK 来处理 C++。

按照解决方法的步骤解决错误后 - Error: No toolchains found in the NDK toolchains folder for ABI with prefix: llvm

新错误:

确保 ABI 有效的预期调用方:MIPS

关于如何解决问题的任何帮助。

【问题讨论】:

    标签: android android-studio android-ndk


    【解决方案1】:

    您应该指定一个 ABI 过滤器。

    你还没有提到你是如何建造的。如果您使用的是 Gradle,那么您可以在 defaultConfig 块中的 build.gradle 中添加类似这样的内容:

    ndk {
        abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
    }
    

    如果你直接调用ndk-build,那么你把它放在ndk-build命令行上:

    APP_ABI=armeabi-v7a arm64-v8a x86 x86_64
    

    或者在你的Application.mk里面:

    APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
    

    我展示的 ABI 过滤器只是一个示例。由您决定要为哪些构建。 arm64-v8aarmeabi-v7a 是迄今为止 Android 设备中最常见的。
    NDK 不再支持mipsmips64armeabi

    【讨论】:

    • buildTypes { debug { ndk { abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64' //abiFilters ABI_FILTERS } } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard- android.txt'), 'proguard-rules.pro' } }
    • 我刚刚开始了一个新项目,并在 android studio 的投诉中添加了 NDK 并收到这些错误。我尝试使用上述方法在我的项目中添加 ndk。但它不起作用。
    • 为什么只为 debug 构建类型而不是所有构建类型添加 ABI 过滤器?
    • 我只是在测试不确定,但不管它在构建类型或构建上给我同样的错误。
    • 您也可以将您的 gradle 插件版本更新为没有此问题的版本。
    【解决方案2】:

    从您的 TOP-LEVEL build.gradle,将您的 android gradle 插件的类路径更改为 3.2.1 或更高版本。

    classpath 'com.android.tools.build:gradle:3.2.1'
    

    或其他选项,请在此处查看:Three options for solving this kind of issue

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-16
      • 2017-12-14
      • 1970-01-01
      • 2011-10-20
      • 2011-04-02
      • 2010-09-09
      相关资源
      最近更新 更多