일부 Java 코드를 컴파일하고 .JAR에 넣은 다음 dx --dex를 실행합니다. 내 파일을 adb를 통해 안드로이드 장치로 보내고 있지만 런타임에 내 공유 라이브러리를 연결하는 데 문제가 있습니다. 나는 불행하게도 다음과 같은 오류를 얻고있다Android UnsatisfiedLinkError : 공유 라이브러리로드 문제
adb shell
su
export CLASSPATH=/data/local/device.jar
export LD_LIBRARY_PATH=/data/local/libhostConnection.so
exec app_process /system/bin com.device.client.Main
: 나는 응용 프로그램이 방법을로드하고
static {
System.loadLibrary("hostConnection");
}
: HostConnection.java에서
, 나는 내 라이브러리를로드하는 코드를 다음 한 을D/dalvikvm(1616): DexOpt: load 482ms, verify 84ms, opt 10ms
D/dalvikvm(1608): DexOpt: --- END 'device.jar' (success) ---
D/dalvikvm(1608): DEX prep '/data/local/device.jar': unzip in 1715ms, rewrite 1287ms
W/dalvikvm(1608): Exception Ljava/lang/UnsatisfiedLinkError; thrown during Lcom/device/client/HostConnection;.<clinit>
D/AndroidRuntime(1608): Shutting down VM
W/dalvikvm(1608): threadid=1: thread exiting with uncaught exception (group=0x4001d830)
I/Process (1608): Sending signal. PID: 1608 SIG: 9
E/AndroidRuntime(1608): *** FATAL EXCEPTION IN SYSTEM PROCESS: main
E/AndroidRuntime(1608): java.lang.ExceptionInInitializerError
E/AndroidRuntime(1608): at com.device.client.Main.<init>(Main.java:27)
E/AndroidRuntime(1608): at com.device.client.Main.main(Main.java:21)
E/AndroidRuntime(1608): at com.android.internal.os.RuntimeInit.finishInit(Native Method)
E/AndroidRuntime(1608): at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235)
E/AndroidRuntime(1608): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(1608): Caused by: java.lang.UnsatisfiedLinkError: Library hostConnection not found
E/AndroidRuntime(1608): at java.lang.Runtime.loadLibrary(Runtime.java:461)
E/AndroidRuntime(1608): at java.lang.System.loadLibrary(System.java:557)
E/AndroidRuntime(1620): at com.device.client.HostConnection.<clinit>(HostConnection.java:25)
HostConnection.java의 25 번째 줄은 실제로 System.loadLibrary ("hostConnectio 엔").
내 라이브러리는 libhostConnection.so이고 내 .jar은 device.jar입니다. 이들은 모두/data/local에 저장됩니다. 공유 라이브러리를/system/lib로 옮겨 보려고했지만 쉘이 파일을 복사 할 수 없게됩니다 (읽기 전용).
내가 잘못하고있는 것이 확실하지 않지만 응용 프로그램을 실행할 때 링크 용 공유 라이브러리를 찾을 수 없다고 생각합니다. 잘못된 변수를 수출에 사용하고 있는지, 아니면 다른 것을해야하는지 잘 모르겠습니다.
아무도 도와 줄 수 없습니까? 대단히 감사하겠습니다.
대단히 감사합니다!
Eclipse를 전혀 사용하지 않고 있습니다. 모두 수동으로 처리하고 있습니다. – Jary