RenderScript ใช้งานไม่ได้บน macOS Catalina (10.15)


10

ฉันอัพเดตเป็น MacOS Catalina แล้ว เช้านี้ในขณะที่ฉันกำลังทำงานในโครงการ Android ของฉันทันใดนั้นก็เริ่มให้ข้อยกเว้นต่อไปนี้: "ข้อผิดพลาด: สาเหตุ: ข้อผิดพลาด = 86 ประเภท CPU ที่ไม่ดีในการปฏิบัติการ"

ฉันสงสัยว่าเป็นเพราะฉันอัปเดตเป็น 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'.

เกิดปัญหาในการเริ่มต้นกระบวนการ 'คำสั่ง' /Users/name/Library/Android/sdk/build-tools/28.0.3/arm-linux-androideabi-ld ''

มีวิธีบังคับให้สตูดิโอ Android ลองและใช้ไลบรารีเวอร์ชันที่สอดคล้องกับ 64 บิตแทนหรือไม่ ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมเป็นส่วนใหญ่ของโครงการขึ้นอยู่กับ Renderscript

หมายเหตุเพิ่มเติม:

  1. ฉันไม่ได้ใช้ androidX ในโครงการนี้เพราะมันทำให้ renderscript สับสนและทำให้ไม่สามารถใช้งานร่วมกับข้อกำหนด 64- บิตของ Google Play

  2. ส่วน renderscript ในไฟล์ gradle ของฉันดูเหมือนว่า:

    renderscriptTargetApi 22
    renderscriptSupportModeEnabled true

คำตอบ:


6

สำหรับทุกคนที่มีปัญหาเดียวกันนี่เป็นข้อผิดพลาด เมื่อใช้ renderscript ตัวลิงก์จะใช้ไฟล์ 32 บิต บันทึกข้อบกพร่องหลายรายการแล้ว หากคุณต้องการติดตามคุณสามารถติดตามสิ่งที่เกิดขึ้นที่นี่: https://issuetracker.google.com/issues/142590626

ถือนิ้วหัวแม่มือที่พวกเขาแก้ไขมันเร็ว ๆ นี้!

ปรับปรุง: พวกเขาได้แก้ไขใน buildtools รุ่นล่าสุด 29.0.3 คุณต้องอัปเดตเป็น Android Studio 3.6 เพื่อใช้งาน

โบนัส: สำหรับทุกคนที่พยายามอัปเดตเป็น AndroidX เช่นกัน - Renderscript อาจแตกบน Android6 มีวิธีแก้ปัญหา (เท่าที่ฉันสามารถบอกได้) ที่คุณตั้ง renderscriptSupportModeEnabled เป็น false - แต่มันไม่สามารถแก้ไขได้สำหรับอุปกรณ์ทั้งหมด (เช่น Xiomi Redmi go - Android 8.1 - จากนั้นแบ่งให้ฉัน)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.