gpt4 book ai didi

android - 在 Gradle 中指定 toolchainVersion 和 productFlavors

转载 作者:行者123 更新时间:2023-12-03 06:12:04 25 4
gpt4 key购买 nike

我正在尝试设置 Android Studio 和 Gradle 以使用 native 代码构建我们的 android 应用程序。

由于我们的依赖关系,我们使用 GCC 4.8 编译 armeabi , armeabi-v7ax86 .
我尝试通过以下方式指定工具链和 abi:

model {
android.ndk {
moduleName = "my_native"
toolchain = "gcc"
toolchainVersion = "4.8"
cppFlags.add("-std=c++11 -fexceptions -frtti")
stl = "gnustl_static"
}

android.productFlavors {
create("arm") {
ndk.with {
abiFilters.add("armeabi")
}
}
create("armv7") {
ndk.with {
abiFilters.add("armeabi-v7a")
}
}
create("x86") {
ndk.with {
abiFilters.add("x86")
}
}
}
}

指定工具链可以正常工作,但 Gradle 会在同步时忽略 abiFilters 并为所有失败的 ABI 创建任务,因为 arm64-v8a 不支持 GCC 4.8|在最新版本的 NDK(我相信是 r10e)中。

我正在使用版本 0.4.0gradle-experimental插件和版本 2.8 Gradle 包装器。 Android Studio 是版本 1.5.0 (最新稳定)。

如何正确指定与一组 ABI 一起使用的工具链?

最佳答案

我有一个类似的问题,发现 this article有帮助。

如果您一次为 3 个架构构建一个 APK,您应该在模块 android.productFlavors 中创建另一个项目在应用程序 build.gradle 脚本中:

android.productFlavors {
create("abi3") {
ndk.abiFilters.add("x86")
ndk.abiFilters.add("armeabi")
ndk.abiFilters.add("armeabi-v7a")
}
}

现在将项目与 Gradle 文件同步将导致 Android Studio 自动创建另外两个 Build Variants(请参阅“Build Variants”工具栏):abi3Debug 和 abi3Release。因此,您可以使用其中一种变体来构建您的项目。
现在我猜你正在使用默认的构建变体,它使用 APP_ABI=all 构建你的项目。 key 。

关于android - 在 Gradle 中指定 toolchainVersion 和 productFlavors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33918193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com