nemůže načíst knihovny za běhu v aplikaci Android

hlasů
4

I m pracuje na android aplikaci, ve které jsem použil JNI pro nativního kódu c. Stavím tuto aplikaci na platformě Android verze 2.0 a ndkr3 a funguje to dobře.

Teď, když jsem změnil Android SDK verze 1.5 a API verze 3 I čelí problémům nemohl otevřít knihovnu 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

Dal jsem soubor libtest_demo.so na stejném místě /data/data/org.abc.test_demo/lib/libtest_demo.so ale stále stejný problém vzniká.

Podle mého java souboru jsem volal nativní knihovny líbí,

 System.loadLibrary(abc_jni);
 System.loadLibrary(test_demo);

Az Logcat jsem viděl obě knihovny používají stejnou adresu paměti.

To je logcat výstup

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
Položena 13/05/2010 v 07:31
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
7

Tato chyba téměř vždy říká: „Nelze najít knihovnu“ a tam může být mnoho důvodů pro toto. Co je nepříjemné je, že ve většině případů to není chybějící knihovny, ale něco jiného. Důvody jsem narazil na:

  • Knihovna chybí z adresáře (samozřejmě),
  • Knihovna, která je dynamicky propojen s knihovnou chybí,
  • verze knihoven systému na zařízení / emulátoru, že vaše knihovna používá liší s těmi, které jste spojující proti v době kompilace (chybí znak, atd.)

Popsal jsem způsob, který pracoval pro mě, když řešení problému s knihovnou, která byla v pořádku na emulátoru a byl neúspěšný nahrát na Nexus One, možná to vám pomůže: http://mpigulski.blogspot.com/2010/09/ ladění-dlopen-unsatisfiedlinkerror.html

Odpovězeno 16/09/2010 v 09:24
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more