RenderScript bị hỏng trên macOS Catalina (10.15)


10

Tôi đã cập nhật lên MacOS Catalina. Sáng nay khi tôi đang làm việc với dự án Android của mình, nó đột nhiên bắt đầu đưa ra ngoại lệ sau: "LRI: Nguyên nhân: lỗi = 86, Loại CPU xấu khi thực thi".

Tôi nghi ngờ điều đó bởi vì tôi đã cập nhật lên macOS 10.15 VÀ vì tôi đã cố gắng xây dựng APK cho dự án của mình (vì vậy nó đã xây dựng lại các công cụ tái hiện). Dưới đây là dấu vết ngăn xếp đầy đủ được đưa ra:

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

và khi thực hiện Đồng bộ hóa, tôi nhận được

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'.

Đã xảy ra sự cố khi bắt đầu quá trình 'lệnh' /Users/name/L Library / Ofroid / sdk / build-tools 28.0.3 / arm-linux-androideabi-ld ''

Có cách nào để buộc studio Android thử và sử dụng các phiên bản 64-bit của các thư viện thay thế không? Bất kỳ trợ giúp sẽ được đánh giá cao, vì một phần rất lớn của dự án phụ thuộc vào Rendercript.

Ghi chú bổ sung:

  1. Tôi không sử dụng androidX trong dự án này, vì nó làm rối bản kết xuất và sau đó khiến nó KHÔNG tương thích với yêu cầu 64 bit của Google Play.

  2. Phần biểu diễn trong tệp gradle của tôi trông như sau:

    renderscriptTargetApi 22
    renderscriptSupportModeEnabled true

Câu trả lời:


6

Đối với bất cứ ai có cùng một vấn đề, đây là một lỗi. Khi sử dụng biểu hiện, trình liên kết sử dụng tệp 32 bit. Nhiều lỗi đã được ghi lại. Nếu bạn muốn theo dõi, bạn có thể theo dõi những gì đang xảy ra ở đây: https://issuetracker.google.com/issues/142590626

Giữ ngón tay cái mà họ sửa nó sớm!

CẬP NHẬT: Họ đã sửa nó trong phiên bản buildtools mới nhất 29.0.3. Bạn cũng cần cập nhật lên Android Studio 3.6 để sử dụng nó.

THƯỞNG: Đối với bất kỳ ai khác đang cố cập nhật lên AndroidX AS WELL - Rendercript có thể bị hỏng trên Android6. Có một cách giải quyết (theo như tôi có thể nói) khi bạn đặt renderersSupportModeEnables thành false - nhưng nó không sửa được cho TẤT CẢ các thiết bị (ví dụ: Xiomi Redmi go - Android 8.1 - sau đó ngắt cho tôi).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.