Aquí hay una parte de mi archivo 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"
                        }
                    }

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

Estoy tratando de usar tres filtros abi (armeabi, armeabi-v7a and arm64-v8a) mientras construyo la aplicación en modo de depuración y uso solo uno (armeabi) mientras construyo la versión apk. Pero no funciona. Tanto la versión de depuración como la versión de lanzamiento utilizan los tres abiFilters.

¿Qué pasa con mi archivo gradle?

Editar:

Resulta que cuando tuve los tres filtros abi y compilé con éxito la aplicación, quería dejar solo armeabi y ... aún así, se agregaron los tres. Tuve que eliminar manualmente el contenido del directorio app / build.

7
Makalele 13 ene. 2017 a las 11:53

1 respuesta

La mejor respuesta

Pusiste tus abiFltros en un bloque incorrecto. Así es como funcionará:

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"
        }
    }
  }
}
15
Alex Cohn 14 feb. 2018 a las 18:56