2013-08-26 2 views
0

안드로이드 응용 프로그램에서 .so 라이브러리 (http://illiri.com/api.html)를 사용하려고합니다. 나는 libs와 폴더 (libs와/armeabi, libs와/armeabi-V7A, libs와/MIPS, libs와/86), 그리고로드 라이브러리에있는 .so를 파일,안드로이드 응용 프로그램 내에서 .so 라이브러리를 사용하는 중 오류가 발생했습니다.

System.loadLibrary("crypto"); 
System.loadLibrary("ssl"); 
System.loadLibrary("sapi"); 

하지만 스택이 오류를 얻고을 복사 한 자취.

08-26 11:17:24.677: E/dalvikvm(25747): Could not find class 'com.illiri.sapi.SAPIConnection', referenced from method com.ey.illiritest.MainActivity.onCreate 
    08-26 11:17:24.697: W/dalvikvm(25747): VFY: unable to resolve new-instance 474 (Lcom/illiri/sapi/SAPIConnection;) in Lcom/ey/illiritest/MainActivity; 
    08-26 11:17:24.697: D/dalvikvm(25747): VFY: replacing opcode 0x22 at 0x000b 
    08-26 11:17:24.697: D/dalvikvm(25747): VFY: dead code 0x000d-0030 in Lcom/ey/illiritest/MainActivity;.onCreate (Landroid/os/Bundle;)V 
    08-26 11:17:24.697: I/dalvikvm(25747): Could not find method com.illiri.sapi.SAPIConnection.suspend, referenced from method com.ey.illiritest.MainActivity.onPause 
    08-26 11:17:24.697: W/dalvikvm(25747): VFY: unable to resolve virtual method 3424: Lcom/illiri/sapi/SAPIConnection;.suspend()V 
    08-26 11:17:24.697: D/dalvikvm(25747): VFY: replacing opcode 0x6e at 0x0005 
    08-26 11:17:24.697: D/dalvikvm(25747): VFY: dead code 0x0008-0008 in Lcom/ey/illiritest/MainActivity;.onPause()V 
    08-26 11:17:24.707: I/dalvikvm(25747): Could not find method com.illiri.sapi.SAPIConnection.resume, referenced from method com.ey.illiritest.MainActivity.onResume 
    08-26 11:17:24.707: W/dalvikvm(25747): VFY: unable to resolve virtual method 3423: Lcom/illiri/sapi/SAPIConnection;.resume()V 
    08-26 11:17:24.707: D/dalvikvm(25747): VFY: replacing opcode 0x6e at 0x0005 
    08-26 11:17:24.707: D/dalvikvm(25747): VFY: dead code 0x0008-0008 in Lcom/ey/illiritest/MainActivity;.onResume()V 
    08-26 11:17:24.707: D/dalvikvm(25747): Trying to load lib /mnt/asec/com.ey.illiritest-1/lib/libcrypto.so 0x2afcad60 
    08-26 11:17:24.707: D/dalvikvm(25747): Added shared lib /mnt/asec/com.ey.illiritest-1/lib/libcrypto.so 0x2afcad60 
    08-26 11:17:24.707: D/dalvikvm(25747): No JNI_OnLoad found in /mnt/asec/com.ey.illiritest-1/lib/libcrypto.so 0x2afcad60, skipping init 
    08-26 11:17:24.707: D/dalvikvm(25747): Trying to load lib /mnt/asec/com.ey.illiritest-1/lib/libssl.so 0x2afcad60 
    08-26 11:17:24.707: D/dalvikvm(25747): Added shared lib /mnt/asec/com.ey.illiritest-1/lib/libssl.so 0x2afcad60 
    08-26 11:17:24.707: D/dalvikvm(25747): No JNI_OnLoad found in /mnt/asec/com.ey.illiritest-1/lib/libssl.so 0x2afcad60, skipping init 
    08-26 11:17:24.707: D/dalvikvm(25747): Trying to load lib /mnt/asec/com.ey.illiritest-1/lib/libsapi.so 0x2afcad60 
    08-26 11:17:24.827: W/dalvikvm(25747): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lcom/ey/illiritest/MainActivity; 
    08-26 11:17:24.837: W/dalvikvm(25747): Class init failed in newInstance call (Lcom/ey/illiritest/MainActivity;) 
    08-26 11:17:24.837: D/AndroidRuntime(25747): Shutting down VM 
    08-26 11:17:24.847: W/dalvikvm(25747): threadid=1: thread exiting with uncaught exception (group=0x2aacc560) 
    08-26 11:17:24.847: E/AndroidRuntime(25747): Uncaught handler: thread main exiting due to uncaught exception 
    08-26 11:17:24.937: W/System.err(25747): java.io.IOException: Permission denied 
    08-26 11:17:24.937: E/AndroidRuntime(25747): FATAL EXCEPTION: main 
    08-26 11:17:24.937: E/AndroidRuntime(25747): java.lang.ExceptionInInitializerError 
    08-26 11:17:24.937: E/AndroidRuntime(25747): at java.lang.Class.newInstanceImpl(Native Method) 
    08-26 11:17:24.937: E/AndroidRuntime(25747): at java.lang.Class.newInstance(Class.java:1409) 
    08-26 11:17:24.937: E/AndroidRuntime(25747): at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
    08-26 11:17:24.937: E/AndroidRuntime(25747): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561) 
    08-26 11:17:24.937: E/AndroidRuntime(25747): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
    08-26 11:17:24.937: E/AndroidRuntime(25747): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
    08-26 11:17:24.937: E/AndroidRuntime(25747): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
    08-26 11:17:24.937: E/AndroidRuntime(25747): at android.os.Handler.dispatchMessage(Handler.java:99) 
    08-26 11:17:24.937: E/AndroidRuntime(25747): at android.os.Looper.loop(Looper.java:130) 
    08-26 11:17:24.937: E/AndroidRuntime(25747): at android.app.ActivityThread.main(ActivityThread.java:3683) 
    08-26 11:17:24.937: E/AndroidRuntime(25747): at java.lang.reflect.Method.invokeNative(Native Method) 
    08-26 11:17:24.937: E/AndroidRuntime(25747): at java.lang.reflect.Method.invoke(Method.java:507) 
    08-26 11:17:24.937: E/AndroidRuntime(25747): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:895) 
    08-26 11:17:24.937: E/AndroidRuntime(25747): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:653) 
    08-26 11:17:24.937: E/AndroidRuntime(25747): at dalvik.system.NativeStart.main(Native Method) 
    08-26 11:17:24.937: E/AndroidRuntime(25747): Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1311]: 1376 cannot locate '__gnu_thumb1_case_uqi'... 
    08-26 11:17:24.937: E/AndroidRuntime(25747): at java.lang.Runtime.loadLibrary(Runtime.java:434) 
    08-26 11:17:24.937: E/AndroidRuntime(25747): at java.lang.System.loadLibrary(System.java:554) 
    08-26 11:17:24.937: E/AndroidRuntime(25747): at com.ey.illiritest.MainActivity.<clinit>(MainActivity.java:167) 
    08-26 11:17:24.937: E/AndroidRuntime(25747): ... 15 more 
    08-26 11:17:24.967: W/System.err(25747): java.io.FileNotFoundException: /data/plog.log (Permission denied) 
    08-26 11:17:27.797: I/Process(25747): Sending signal. PID: 25747 SIG: 9 
    08-26 11:18:46.837: E/dalvikvm(25943): Could not find class 'com.illiri.sapi.SAPIConnection', referenced from method com.ey.illiritest.MainActivity.onCreate 
    08-26 11:18:46.837: W/dalvikvm(25943): VFY: unable to resolve new-instance 474 (Lcom/illiri/sapi/SAPIConnection;) in Lcom/ey/illiritest/MainActivity; 
    08-26 11:18:46.837: D/dalvikvm(25943): VFY: replacing opcode 0x22 at 0x001a 
    08-26 11:18:46.837: D/dalvikvm(25943): VFY: dead code 0x001c-003f in Lcom/ey/illiritest/MainActivity;.onCreate (Landroid/os/Bundle;)V 
    08-26 11:18:46.837: I/dalvikvm(25943): Could not find method com.illiri.sapi.SAPIConnection.suspend, referenced from method com.ey.illiritest.MainActivity.onPause 
    08-26 11:18:46.837: W/dalvikvm(25943): VFY: unable to resolve virtual method 3424: Lcom/illiri/sapi/SAPIConnection;.suspend()V 
    08-26 11:18:46.837: D/dalvikvm(25943): VFY: replacing opcode 0x6e at 0x0005 
    08-26 11:18:46.837: D/dalvikvm(25943): VFY: dead code 0x0008-0008 in Lcom/ey/illiritest/MainActivity;.onPause()V 
    08-26 11:18:46.847: I/dalvikvm(25943): Could not find method com.illiri.sapi.SAPIConnection.resume, referenced from method com.ey.illiritest.MainActivity.onResume 
    08-26 11:18:46.847: W/dalvikvm(25943): VFY: unable to resolve virtual method 3423: Lcom/illiri/sapi/SAPIConnection;.resume()V 
    08-26 11:18:46.847: D/dalvikvm(25943): VFY: replacing opcode 0x6e at 0x0005 
    08-26 11:18:46.847: D/dalvikvm(25943): VFY: dead code 0x0008-0008 in Lcom/ey/illiritest/MainActivity;.onResume()V 
    08-26 11:18:46.877: D/dalvikvm(25943): Trying to load lib /mnt/asec/com.ey.illiritest-1/lib/libcrypto.so 0x2afcb300 
    08-26 11:18:46.877: D/dalvikvm(25943): Added shared lib /mnt/asec/com.ey.illiritest-1/lib/libcrypto.so 0x2afcb300 
    08-26 11:18:46.877: D/dalvikvm(25943): No JNI_OnLoad found in /mnt/asec/com.ey.illiritest-1/lib/libcrypto.so 0x2afcb300, skipping init 
    08-26 11:18:46.877: D/dalvikvm(25943): Trying to load lib /mnt/asec/com.ey.illiritest-1/lib/libssl.so 0x2afcb300 
    08-26 11:18:46.877: D/dalvikvm(25943): Added shared lib /mnt/asec/com.ey.illiritest-1/lib/libssl.so 0x2afcb300 
    08-26 11:18:46.877: D/dalvikvm(25943): No JNI_OnLoad found in /mnt/asec/com.ey.illiritest-1/lib/libssl.so 0x2afcb300, skipping init 
    08-26 11:18:46.877: D/dalvikvm(25943): Trying to load lib /mnt/asec/com.ey.illiritest-1/lib/libsapi.so 0x2afcb300 
    08-26 11:18:46.927: D/AndroidRuntime(25943): Shutting down VM 
    08-26 11:18:46.927: W/dalvikvm(25943): threadid=1: thread exiting with uncaught exception (group=0x2aacc560) 
    08-26 11:18:46.927: E/AndroidRuntime(25943): Uncaught handler: thread main exiting due to uncaught exception 
    08-26 11:18:46.957: W/System.err(25943): java.io.IOException: Permission denied 
    08-26 11:18:46.967: E/AndroidRuntime(25943): FATAL EXCEPTION: main 
    08-26 11:18:46.967: E/AndroidRuntime(25943): java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1311]: 1376 cannot locate '__gnu_thumb1_case_uqi'... 
    08-26 11:18:46.967: E/AndroidRuntime(25943): at java.lang.Runtime.loadLibrary(Runtime.java:434) 
    08-26 11:18:46.967: E/AndroidRuntime(25943): at java.lang.System.loadLibrary(System.java:554) 
    08-26 11:18:46.967: E/AndroidRuntime(25943): at com.ey.illiritest.MainActivity.onCreate(MainActivity.java:36) 
    08-26 11:18:46.967: E/AndroidRuntime(25943): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
    08-26 11:18:46.967: E/AndroidRuntime(25943): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
    08-26 11:18:46.967: E/AndroidRuntime(25943): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
    08-26 11:18:46.967: E/AndroidRuntime(25943): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
    08-26 11:18:46.967: E/AndroidRuntime(25943): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
    08-26 11:18:46.967: E/AndroidRuntime(25943): at android.os.Handler.dispatchMessage(Handler.java:99) 
    08-26 11:18:46.967: E/AndroidRuntime(25943): at android.os.Looper.loop(Looper.java:130) 
    08-26 11:18:46.967: E/AndroidRuntime(25943): at android.app.ActivityThread.main(ActivityThread.java:3683) 
    08-26 11:18:46.967: E/AndroidRuntime(25943): at java.lang.reflect.Method.invokeNative(Native Method) 
    08-26 11:18:46.967: E/AndroidRuntime(25943): at java.lang.reflect.Method.invoke(Method.java:507) 
    08-26 11:18:46.967: E/AndroidRuntime(25943): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:895) 
    08-26 11:18:46.967: E/AndroidRuntime(25943): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:653) 
    08-26 11:18:46.967: E/AndroidRuntime(25943): at dalvik.system.NativeStart.main(Native Method) 
    08-26 11:18:46.987: W/System.err(25943): java.io.FileNotFoundException: /data/plog.log (Permission denied) 

나는 인터넷에서 많은 것을 찾았지만 아직 해결책을 찾을 수 없다. 도와주세요.

+0

apk에 Java 클래스 com.illiri.sapi.SAPIConnection이 있습니까? –

+0

@AlexCohn 예 Alex. 내 응용 프로그램 sapi.jar에 jar 파일이 포함되어 있습니다. 그리고 내 활동 내에서 import com.illiri.sapi.SAPIConnection 클래스를 가져오고 있습니다. –

답변

0

이것은 툴 체인 문제입니다 (https://dev.guardianproject.info/issues/229 참조). - NDK 툴 체인을 4.4.3으로 강제 실행하는 것으로 보입니다.

+0

그것은 도구 체인 문제였습니다. API 웹 사이트가 수정하여 현재 작동 중입니다. –

0

AFAIK, 네이티브 코드를 컴파일하고 android ndk의 ndk-build 명령을 사용하여 * .so 파일을 생성 할 때마다 특정 툴체인에만 적용됩니다.

이제 응용 프로그램에서 다운로드하고 사용하는 라이브러리가 Android ndk에서 지원하는 툴 체인을 사용하여 빌드되지 않을 수 있습니다. 이것은 내가 응용 프로그램에서 사용했을 때 비슷한 오류가 발생했을 때의 이유 중 하나입니다.

그래서 안드로이드 시스템에서 지원하는 툴체인이 생성 한 * .so 파일을 사용해보십시오.

+0

앞서 언급했듯이 파일을 만들지 않습니다. 응용 웹 사이트에서 얻었습니다. –

+0

언급했듯이, 웹 사이트는 장치에서 지원하지 않는 툴체인을 사용하여 파일을 만들었을 것입니다. – Zax

관련 문제