RenderScript roto en macOS Catalina (10.15)

10

He actualizado a MacOS Catalina. Esta mañana, mientras estaba trabajando en mi proyecto de Android, de repente comenzó a dar la siguiente excepción: "ERROR: Causa: error = 86, tipo de CPU incorrecto en el ejecutable".

Lo sospecho porque actualicé a macOS 10.15 Y porque traté de compilar el APK para mi proyecto (por lo que reconstruyó el material de renderscript). Aquí está el seguimiento completo de la pila dado:

org.gradle.process.internal.ExecException: A problem occurred starting process 'command '/Users/name/Library/Android/sdk/build-tools/28.0.3/arm-linux-androideabi-ld''
    at org.gradle.process.internal.DefaultExecHandle.execExceptionFor(DefaultExecHandle.java:232)
    at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:209)
    at org.gradle.process.internal.DefaultExecHandle.failed(DefaultExecHandle.java:356)
    at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:86)
    at org.gradle.internal.operations.CurrentBuildOperationPreservingRunnable.run(CurrentBuildOperationPreservingRunnable.java:38)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
    at java.lang.Thread.run(Thread.java:748)
Caused by: net.rubygrapefruit.platform.NativeException: Could not start '/Users/name/Library/Android/sdk/build-tools/28.0.3/arm-linux-androideabi-ld'
    at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:27)
    at net.rubygrapefruit.platform.internal.WrapperProcessLauncher.start(WrapperProcessLauncher.java:36)
    at org.gradle.process.internal.ExecHandleRunner.startProcess(ExecHandleRunner.java:97)
    at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:70)
    ... 7 more
Caused by: java.io.IOException: Cannot run program "/Users/name/Library/Android/sdk/build-tools/28.0.3/arm-linux-androideabi-ld" (in directory "/Users/name/Documents/Projects/onlinetrucks_android/MyApplication/app"): error=86, Bad CPU type in executable
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
    at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25)
    ... 10 more
Caused by: java.io.IOException: error=86, Bad CPU type in executable
    at java.lang.UNIXProcess.forkAndExec(Native Method)
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
    at java.lang.ProcessImpl.start(ProcessImpl.java:134)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
    ... 11 more

y al hacer una sincronización de Gradle, obtengo

warning: Linking two modules of different target triples: /Users/name/Library/Android/sdk/build-tools/28.0.3/renderscript/lib/bc/x86/libclcore.bc' is 'armv7--linux-android' whereas '/Users/name/Documents/Projects/onlinetrucks_android/MyApplication/app/build/generated/res/rs/debug/raw/bc32/singlesource.bc' is 'armv7-none-linux-gnueabi'

y

Execution failed for task ':app:compileDebugRenderscript'.

Se produjo un problema al iniciar el proceso 'comando' /Users/name/Library/Android/sdk/build-tools/28.0.3/arm-linux-androideabi-ld ''

¿Hay alguna manera de obligar a Android Studio a probar y usar las versiones de las bibliotecas compatibles con 64 bits? Cualquier ayuda sería apreciada, ya que una gran parte del proyecto depende de Renderscript.

Notas adicionales:

  1. No uso androidX en este proyecto, ya que desordena el renderscript y luego hace que NO sea compatible con el requisito de 64 bits de Google Play.

  2. La parte del renderscript en mi archivo gradle se ve así:

    renderscriptTargetApi 22
    renderscriptSupportModeEnabled true
Zee
fuente

Respuestas:

6

Para cualquiera que tenga el mismo problema, esto es un error. Cuando se usa renderscript, el enlazador usa el archivo de 32 bits. Se han registrado múltiples errores. Si desea realizar un seguimiento, puede seguir lo que está sucediendo aquí: https://issuetracker.google.com/issues/142590626

¡Sosteniendo los pulgares para que lo arreglen pronto!

ACTUALIZACIÓN: Lo han arreglado en la última versión de buildtools 29.0.3. También necesita actualizar a Android Studio 3.6 para usarlo.

BONIFICACIÓN: Para cualquier otra persona que intente actualizar a AndroidX ASÍ BIEN: Renderscript podría romperse en Android6. Hay una solución alternativa (por lo que puedo decir) donde establece renderscriptSupportModeEnabled en falso, pero no lo soluciona para TODOS los dispositivos (por ejemplo, Xiomi Redmi go - Android 8.1, luego se rompe para mí).

Zee
fuente