Gradle 使用不同的 abiFilters 进行调试和发布

Gradle using different abiFilters for debug and release

这是我的 build.gradle 文件的一部分:

android {
    //...

    defaultConfig {
        //...

        externalNativeBuild {

                ndkBuild {
                    targets "MyGame"
                    arguments "NDK_MODULE_PATH=$cocospath:$cocospath/cocos:$cocospath/external:$cocospath/cocos/prebuilt-mk:$cocospath/extensions"
                    arguments "-j" + Runtime.runtime.availableProcessors()

                    buildTypes {
                        debug {
                            abiFilters "armeabi", "armeabi-v7a", "arm64-v8a"
                        }

                        release {
                            abiFilters "armeabi"
                        }
                    }

                }
        }
    }
    //.........

我试图在调试模式下构建应用程序时使用三个 ABI 过滤器 (armeabi, armeabi-v7a and arm64-v8a),而在构建发布 apk 时仅使用一个 (armeabi)。但它不起作用。调试版和发布版都使用所有三个 abiFilters。

我的 gradle 文件有什么问题?

编辑:

事实证明,当我拥有所有三个 abi 过滤器并成功构建应用程序时,我想只留下 armeabi 并且......仍然添加了所有三个。我不得不手动删除 app/build 目录的内容。

您将 aabiFIlters 放在了错误的区块中。这就是它的工作原理:

android {
  //...

  defaultConfig {
    //...

    externalNativeBuild {
      ndkBuild {
         targets "MyGame"
         arguments …
      }
    }
  }

  buildTypes {
    release {
       ndk {
            abiFilters "armeabi-v7a"
        }

        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debug {
        ndk {
            abiFilters "x86", "armeabi-v7a"
        }
    }
  }
}