当前位置:  开发笔记 > Android > 正文

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

如何解决《Gradle使用不同的abiFilters进行调试和发布》经验,为你挑选了1个好方法。

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

我的gradle文件出了什么问题?

编辑:

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



1> Alex Cohn..:

你把一个abiFIlters放在一个错误的块中.这是它的工作方式:

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

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有