【问题标题】:Gradle using different abiFilters for debug and releaseGradle 使用不同的 abiFilters 进行调试和发布
【发布时间】:2017-05-28 14:14:26
【问题描述】:

这是我的 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)。但它不起作用。调试版本和发布版本都使用所有三个 abiFilter。

我的 gradle 文件有什么问题?

编辑:

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

【问题讨论】:

    标签: android gradle android-ndk ndk-build


    【解决方案1】:

    你把你的 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"
            }
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-25
      • 2014-01-22
      • 1970-01-01
      相关资源
      最近更新 更多