RenderScript 라이브러리를 사용하려는 Samsung Galaxy S7이 있습니다. 이 라이브러리는 RenderScript의 지원 버전을 사용하며 앞에 RenderScript.forceCompat()
행이 있습니다.RenderScript - arm64-v8a 장치에서 생성 된 ScriptC 파일 "libRSSupportIO.so"을 찾을 수 없습니다.
응용 프로그램의 Gradle을 파일에는 종속성 블록이 라인이 있습니다
defaultConfig { renderscriptTargetApi 21 renderscriptSupportModeEnabled true renderscriptSupportModeBlasEnabled true }
ABI의 분할은 arm64-v8a ABI의 분할을 포함합니다.
다음 스택 트레이스는 라이브러리가 ScriptC 파일을 초기화 할 때 생성됩니다
05-22 10:23:34.600 7568-7633/com.picmix.mobile V/RenderScript_jni: RS compat mode 05-22 10:23:34.608 7568-7633/com.picmix.mobile V/RenderScript_jni: Unable to load libRSSupportIO.so, USAGE_IO not supported 05-22 10:23:34.615 7568-7942/com.picmix.mobile E/RenderScript: Couldn't load libRSSupportIO.so 05-22 10:23:34.633 7568-7942/com.picmix.mobile E/RenderScript: Unable to open shared library (/data/app/com.picmix.mobile-1/lib/arm64/librs.img2alloc.so): dlopen failed: library "libRSSupportIO.so" not found 05-22 10:23:34.633 7568-7942/com.picmix.mobile E/RenderScript: Unable to open system shared library (/system/lib/librs.img2alloc.so): (null)
는 분명히 이것은 단지 모두 armv8l 아키텍처를 사용하여 S6와 S7 장치에서 발생합니다. 필자는 다른 장치 (Oppo A37, Huawei ALE-L21 및 Samsung Galaxy J2)에서이 장치를 테스트했으며,이 장치는 모두 API 23 이하 였고 Oppo 및 S6에는 "aarch64"아키텍처가 있습니다.
내가 누락 된 항목이 있습니까? libRSSupportIO.so
을 수동으로 포함해야하나요? 내 APK의 libs 폴더를 살펴볼 때 libRSSupport.so
이 표시됩니다.
편집 : 내 빌드 도구 버전은 25.0.3입니다.
EDIT 2 : 다음 스택 추적이 관련된 경우 앱이 고장난 직후 SIGSEGV가 있습니다.
05-23 09:23:18.815 21603-21603/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 05-23 09:23:18.815 21603-21603/? A/DEBUG: Build fingerprint: 'samsung/zerofltexx/zeroflte:7.0/NRD90M/G920FXXU5EQCK:user/release-keys' 05-23 09:23:18.815 21603-21603/? A/DEBUG: Revision: '11' 05-23 09:23:18.815 21603-21603/? A/DEBUG: ABI: 'arm64' 05-23 09:23:18.815 21603-21603/? A/DEBUG: pid: 19971, tid: 21568, name: AsyncTask #6 >>> com.picmix.mobile <<< 05-23 09:23:18.815 21603-21603/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1c 05-23 09:23:18.815 21603-21603/? A/DEBUG: x0 0000000000000000 x1 0000000000000000 x2 0000000000000008 x3 0000000000000100 05-23 09:23:18.815 21603-21603/? A/DEBUG: x4 0000000000000000 x5 0000000000000000 x6 0000000000000000 x7 0000000000000000 05-23 09:23:18.815 21603-21603/? A/DEBUG: x8 0000000000000000 x9 0000007e1b7f4020 x10 0000000000000000 x11 0000000000000000 05-23 09:23:18.815 21603-21603/? A/DEBUG: x12 0000000000000018 x13 0000000000000000 x14 0000000000000000 x15 000f2561f7049c9e 05-23 09:23:18.815 21603-21603/? A/DEBUG: x16 0000007e1b7f2520 x17 0000007e1b71b344 x18 00000000ffffffff x19 0000000000000000 05-23 09:23:18.815 21603-21603/? A/DEBUG: x20 0000000000000000 x21 0000007e1d0d03c0 x22 0000007e1b3feaf0 x23 0000007e1d0d03f0 05-23 09:23:18.815 21603-21603/? A/DEBUG: x24 0000000000000001 x25 00000000ffffffff x26 0000000000000000 x27 0000000000000008 05-23 09:23:18.815 21603-21603/? A/DEBUG: x28 0000007e1b7c4798 x29 0000007e1b3feac0 x30 0000007e1b722bac 05-23 09:23:18.815 21603-21603/? A/DEBUG: sp 0000007e1b3feab0 pc 0000007e1b71b358 pstate 0000000060000000 05-23 09:23:18.823 21603-21603/? A/DEBUG: backtrace: 05-23 09:23:18.823 21603-21603/? A/DEBUG: #00 pc 0000000000068358 /data/app/com.picmix.mobile-2/base.apk (offset 0x215e000) 05-23 09:23:18.823 21603-21603/? A/DEBUG: #01 pc 000000000006fba8 /data/app/com.picmix.mobile-2/base.apk (offset 0x215e000) 05-23 09:23:18.824 21603-21603/? A/DEBUG: #02 pc 0000000000063bbc /data/app/com.picmix.mobile-2/base.apk (offset 0x215e000) 05-23 09:23:18.824 21603-21603/? A/DEBUG: #03 pc 0000000000068258 /system/lib64/libc.so (_ZL15__pthread_startPv+196) 05-23 09:23:18.824 21603-21603/? A/DEBUG: #04 pc 000000000001dc00 /system/lib64/libc.so (__start_thread+16)
내가 만든 APK에 있습니다. 물론입니다. armeabi-v7a, x86 및 arm64-v8a에서는 lib 폴더의 일부입니다. – Gensoukyou1337