将abiFilters添加到gradle属性

问题描述 投票:0回答:6

我想在 gradle.properties 文件中添加 ndk.abiFilters 属性。现在我在 build.gradle 中有这个属性。 这是我的 build.gradle 的一部分

buildTypes {
  debug { 
     ndk {
       abiFilters "x86", "armeabi-v7a", "armeabi"
       //abiFilters ABI_FILTERS
     }
   }
}

这是我的 gradle.properties 文件的一部分

ABI_FILTERS = "x86", "armeabi-v7a", "armeabi"

问题是 gradle.properties 中的字符串未正确转换为与 abiFilters 一起使用。我尝试了很多变体但没有运气。正确执行此操作的正确方法是什么?谢谢你的帮助。

android android-ndk android-gradle-plugin
6个回答
27
投票

在 gradle.properties 中你可以有例如:

ABI_FILTERS=armeabi-v7a;x86 //delimiter can be anything (change below)

然后在 build.gradle 中有(例如在 debug buildType 部分):

ndk {
  abiFilters = []
  abiFilters.addAll(ABI_FILTERS.split(';').collect{it as String})
}

现在每个开发人员都可以为他当前的测试设备独立选择abi(gradle.properties位于.gitignore中)。

感谢 Igor Ganapolsky 的开始提示。


14
投票

以下适用于 Gradle 2.3:

abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'arm64-v8a'

4
投票

gradle.properties 文件

ABI_FILTERS = ["armeabi", "x86"]

build.gradle 文件

ndk {
  abiFilters = []
  abiFilters.addAll(ABI_FILTERS)
}

2
投票

使用这个:

flavorDimensions "abi"
    productFlavors {
        arm7 {
            dimension "abi"
            ndk.abiFilters 'armeabi-v7a'
        }
        x86 {
            dimension "abi"
            ndk.abiFilters 'x86'
        }
    }

您可以在 NDK 的 Google 示例中查看此设置的示例: https://github.com/android/ndk-samples/blob/8132651aba8db36b14e0d0461c7cb46d3778f99c/other-builds/ndkbuild/hello-neon/app/build.gradle


2
投票

对于颤振也可以这样做。

添加:

android{
    buildTypes{
          debug {
              ndk {
                  abiFilters  'arm64-v8a'
              }
          }
    }
}

到 android pp uild.gradle。这可以从调试版本中删除 x86 libflutter.so 库并缩短安装时间。适用于 gradle 7.2


0
投票

Проверьте это.

ndk {
        abiFilters.addAll(setOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64"))
    }
© www.soinside.com 2019 - 2024. All rights reserved.