RenderScript розбитий на macOS Каталіна (10.15)


10

Я оновив MacOS Catalina. Сьогодні вранці, коли я працював над своїм проектом Android, він раптом почав давати таке виняток: "ПОМИЛКА: Причина: помилка = 86, неправильний тип процесора у виконанні".

Я підозрюю це, тому що я оновився до macOS 10.15 І тому, що я намагався створити APK для свого проекту (тому він відновив рендерифти). Ось наведений повний слід стека:

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

і робити Gradle Sync, я розумію

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'

і

Execution failed for task ':app:compileDebugRenderscript'.

Виникла проблема із запуском процесу 'command' /Users/name/Library/Android/sdk/build-tools/28.0.3/arm-linux-androideabi-ld ''

Чи є спосіб змусити Android Studio спробувати використовувати замість цього 64-бітні версії бібліотек? Будь-яка допомога буде вдячна, оскільки величезна частина проекту залежить від Renderscript.

Додаткові нотатки:

  1. Я не використовую androidX у цьому проекті, оскільки він заплутує рендерифт, а потім призводить до того, що він НЕ сумісний із 64-розрядною вимогою Google Play.

  2. Частина відтворення в моєму файлі gradle виглядає так:

    renderscriptTargetApi 22
    renderscriptSupportModeEnabled true

Відповіді:


6

Для тих, хто має те саме питання, це помилка. Під час використання рендерингу лінкер використовує 32-бітний файл. Записано кілька помилок. Якщо ви хочете відслідковувати, ви можете слідкувати за тим, що відбувається тут: https://issuetracker.google.com/isissue/142590626

Тримаючи великі пальці, що вони це скоро виправлять!

ОНОВЛЕННЯ: Вони виправили це в останній версії збірок версій 29.0.3. Для його використання також потрібно оновити до Android Studio 3.6.

БОНУС: Для всіх, хто намагається оновити до AndroidX як добре - Renderscript може зламатися на Android6. Існує вирішення (наскільки я можу сказати), де ви встановлюєте renderscriptSupportModeEnabled на помилковий - але це не виправляє його для ВСІХ пристроїв (наприклад, Xiomi Redmi go - Android 8.1 - тоді для мене перерва).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.