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.