저는 native C 코드로 JNI를 사용하는 Android 애플리케이션을 사용하고 있습니다. 나는이 응용 프로그램을 android 2.0 버전과 ndkr3으로 빌드하고 정상적으로 작동합니다.런타임에 라이브러리를 Android 애플리케이션에서로드 할 수 없습니다.
지금 안드로이드 SDK 버전 1.5와 API 버전 3을 바꿨을 때 libtest_demo.so 라이브러리를 열 수 없다는 문제가있었습니다.
05-13 16:54:23.603: INFO/dalvikvm(1211): Unable to dlopen(/data/data/org.abc.test_demo/lib/libtest_demo.so): Cannot find library
나는 같은 장소에서 libtest_demo.so 파일을 넣어 /data/data/org.abc.test_demo/lib/libtest_demo.so 여전히 같은 문제가 발생합니다.
내 자바 파일에서 나는
System.loadLibrary("abc_jni");
System.loadLibrary("test_demo");
, 같은 네이티브 라이브러리를 호출 그리고 로그 캣에서 나는 두 라이브러리가 동일한 메모리 주소를 사용 보았다.
이
는 로그 캣 출력05-13 17:56:15.732: DEBUG/dalvikvm(9897): Trying to load lib /data/data/org.abc.test_demo/lib/libabc_jni.so 0x437317f8
05-13 17:56:15.732: DEBUG/dalvikvm(9897): Added shared lib /data/data/org.abc.test_demo/lib/libabc_jni.so 0x437317f8
05-13 17:56:15.742: DEBUG/dalvikvm(9897): Trying to load lib /data/data/org.abc.test_demo/lib/libtest_demo.so 0x437317f8
05-13 17:56:15.752: INFO/dalvikvm(9897): Unable to dlopen(/data/data/org.abc.test_demo/lib/libtest_demo.so): Cannot find library