警告:由于'android.injected.build.abi' gradle标志设置了[armeabi-v7a,armeabi] ABIs,因此包含“ARMEABI”未被此项目所针对。

29
上次在Android Studio中升级NDK版本后,我也遇到了这个问题。但我已经找到了解决办法。如果有人遇到同样的问题,我希望这个问答对你有所帮助。请查看我的回答。
4个回答

23
我通过阅读NDK修订版16的发行说明找到了解决方案。
  1. 如果您使用Application.mk配置项目,只需将以下内容添加到您的Application.mk文件中:

    APP_STL := c++_shared
    
    如果您正在通过Gradle使用CMake,请将以下内容添加到您的build.gradle文件中:
  2. externalNativeBuild {
        cmake {
            cppFlags ""
            arguments "-DANDROID_STL=c++_shared"
        }
    }
    

要及时了解新版本和注意事项,请关注NDK修订历史记录以适应新变化。

希望这能解决您的问题。


10
我已添加了"c++_shared"以便在使用NDK-r18时进行编译,但我仍然收到相同的ARMEABI警告。不确定现在是谁在尝试使用它。 - Jim Leask
@chivorn 我认为 NDK-r16 仍然支持这个,所以在那里不会有问题。但是我使用 NDK-r18 仍然会出现这种情况。 - Jim Leask
@JimLeask 我也使用ndk-r18。当它为设备构建时,Java编译器会发出相同的警告。 - Graham Lee
1
警告已经消失,但应用程序在启动时崩溃。(gradle构建,NDK 19) - Jake 'Alquimista' LEE
已检查 NDK 20,但警告仍然存在。 - ranka47

6
根据Android文档,这是一个已知问题,由于gradle插件默认仍包含不支持的ABIs导致。armbeabi在NDKr16中已被弃用,并在r17中被移除,因此会出现警告。要解决此问题,请在splits.abi下列出您支持的架构。
...
splits {
    abi {
        ...
        reset()
        include "x86", "armeabi-v7a", ...
    }
}

我的构建已经包含了 reset(),但仍然显示警告。 - Chisko
警告中是否提到了“armeabi”?使用reset()后,根据您的构建文件,仍可能会看到有关其他架构的警告。 - Filipe Oliveira
是的,我收到了与 OP 相同的警告。 - Chisko
我的最后猜测是一些Android Studio缓存问题。 - Filipe Oliveira

2

我遇到了同样的问题,并通过修改模块的build.gradle文件并添加以下设置来解决:

将Original Answer翻译成"最初的回答"

android {
    ...
    splits {
        abi {
            enable true
            reset()
            include 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' //select ABIs to build APKs for
            universalApk true //generate an additional APK that contains all the ABIs
        }
    }

    project.ext.versionCodes = ['armeabi': 1, 'armeabi-v7a': 2, 'arm64-v8a': 3, 'mips': 5, 'mips64': 6, 'x86': 8, 'x86_64': 9]

    android.applicationVariants.all { variant ->
        variant.outputs.each { output ->
            output.versionCodeOverride =
                   project.ext.versionCodes.get(output.getFilter(com.android.build.OutputFile.ABI), 0) * 1000000 + android.defaultConfig.versionCode
        }
    }
}

最初的回答
以下是参考内容,祝好运。

1
这并没有解决我的问题,我通过添加以下内容来解决:
        ndk {
            abiFilters "armeabi-v7a"
        }

到 android.defaultConfig


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接