其他分享
首页 > 其他分享> > android – Gradle使用不同的abiFilters进行调试和发布

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

作者:互联网

这是我的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和arm64-v8a),同时在调试模式下构建应用程序,并在构建版本apk时仅使用一个(armeabi).但它不起作用.调试版和发行版都使用了所有三个abiFilter.

我的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"
        }
    }
  }
}

标签:android,android-ndk,gradle,ndk-build
来源: https://codeday.me/bug/20190823/1701744.html