android android-studio android-ndk

La ejecución de transformNativeLibsWithStripDebugSymbolForRelease falló con mips64el-linux-android-strip



android-studio android-ndk (1)

Estoy recibiendo este error en Android Studio, por favor, alguien que sepa cómo resolverlo, hágamelo saber

Execution failed for task '':q84sale-base:transformNativeLibsWithStripDebugSymbolForRelease''. > A problem occurred starting process ''command ''/Users/amira/Library/Android/sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/darwin-x86_64/bin/mips64el-linux-android-strip''''


Razones:

De acuerdo a https://github.com/android-ndk/ndk/wiki/Changelog-r18#known-issues

Esta versión del NDK es incompatible con el complemento Android Gradle versión 3.0 o anterior. Si ve un error como No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android , actualice su archivo de proyecto para usar el complemento de la versión 3.1 o posterior. También deberá actualizar a Android Studio 3.1 o posterior.

Como se dijo anteriormente:

actualice su archivo de proyecto para usar el complemento de la versión 3.1 o posterior. También deberá actualizar a Android Studio 3.1 o posterior.

La solución directa es:

Desde su build.gradle TOP-LEVEL, cambie su classpath para el plugin android gradle a 3.2.1 o superior .

classpath ''com.android.tools.build:gradle:3.2.1''

Pero , si desea mantener su versión actual del plugin Gradle, las soluciones / soluciones son las siguientes:

Opción 1:

No hay más arquitectura mips desde ndk-17 . Por lo tanto, puede degradar su NDK (para versiones anteriores de NDK, consulte aquí: https://developer.android.com/ndk/downloads/older_releases ) o agregue abiFilters para excluir los ABI de mips .

Al ver que está utilizando ndk-bundle, que es la configuración predeterminada de la ruta ndk de Android Studio. Puede configurar esta ruta desde local.properties para que apunte a su versión NDK, por ejemplo, r16b , en lugar del ndk-bundle predeterminado.

ndk.dir=<path>/android-ndk-r16b sdk.dir=<path>/sdk

Opcion 2:

Usando la configuración de abajo para filtrar solo las ABI necesarias.

android { // Similar to other properties in the defaultConfig block, you can override // these properties for each product flavor in your build configuration. defaultConfig { ndk { // Tells Gradle to build outputs for the following ABIs and package // them into your APK. abiFilters ''x86'', ''x86_64'', ''armeabi-v7a'', ''arm64-v8a'' } } }

O si estás usando cmake

buildTypes { debug { externalNativeBuild { cmake { abiFilters ''x86'', ''x86_64'', ''armeabi-v7a'', ''arm64-v8a'' } } } release { externalNativeBuild { cmake { abiFilters ''x86'', ''x86_64'', ''armeabi-v7a'', ''arm64-v8a'' } } } }

Opción 3:

Otra solución es omitir la eliminación de los archivos Mips utilizando la siguiente configuración:

android { ... packagingOptions{ doNotStrip ''*/mips/*.so'' doNotStrip ''*/mips64/*.so'' } ... }

Elige la mejor opción para tu caso.