警告:由'android.injected.build.abi'gradle标志设置的ABIs [armeabi-v7a,armeabi]包含的'ARMEABI'不是此项目的目标

Chi*_*orn 20 java-native-interface android android-ndk

在将NDK版本升级到Android Studio中的最新版本后,我上次遇到此问题.我也找到了解决这个问题的方法.如果有人有这个问题,我希望这是你最好的问题和答案.请检查我的答案.

Chi*_*orn 18

我通过阅读NDK第16 版的发布说明找到了解决方案.

  1. 如果您Application.mk只需将以下内容添加到Application.mk文件中即可配置项目:

    APP_STL := c++_shared
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果您CMake通过Gradle 使用,请将以下内容添加到build.gradle:

    externalNativeBuild {
        cmake {
            cppFlags ""
            arguments "-DANDROID_STL=c++_shared"
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

要及时了解新版本和说明,请按照此NDK修订历史记录申请更改.

我希望它可以解决你的问题.

  • 我添加了c ++ _ shared以使编译与NDK-r18一起工作,但是,我仍然有相同的ARMEABI警告.现在还不确定是什么尝试使用它. (9认同)

小智 5

根据Android文档,这是一个已知问题,其原因是gradle插件默认仍包含不支持的ABI。在NDKr16中不推荐使用armbeabi,在r17中将其删除,因此发出警告。要修复,请在下面列出您支持的体系结构splits.abi

...
splits {
    abi {
        ...
        reset()
        include "x86", "armeabi-v7a", ...
    }
}
Run Code Online (Sandbox Code Playgroud)