2012-04-17 3 views
2

Можно создать дубликат:
Application works in debug/run from Eclipse, but .APK gives .classNotFoundException when parsing XML layout that contains a custom ViewAndroid JNI: Вызов System.loadLibrary() вызывает SEGV

Я повторно используя существующий NDK скомпилированные библиотеки из другого приложения.

Когда я пытаюсь загрузить библиотеку с помощью System.loadLibrary(), она сбой с SIGSEGV.

Просто, я делаю это:

static { 
     System.loadLibrary("testlib"); 
     } 

Я уверен, что библиотека хороша, как она используется в другом приложении (без изменений). Я также могу загрузить другие библиотеки без каких-либо проблем.

Я довольно новичок в использовании Android/NDK - есть ли что-то, что мне нужно, чтобы быть осторожным, чтобы указать или настроить, что, возможно, я пропустил?

Вот что я вижу в журнале:

04-17 09:33:37.725 6100 6100 D dalvikvm: Trying to load lib /data/data/com.test.android/lib/libtestlib.so 0x4051617 
0 
04-17 09:33:37.733 6100 6100 D dalvikvm: Added shared lib /data/data/com.test.android/lib/libtestlib.so 0x40516170 
04-17 09:33:37.733 6108 6108 I DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 
04-17 09:33:37.733 6108 6108 I DEBUG : Build fingerprint: 'verizon/venus2_vzw/cdma_venus2:2.3.4/4.5.1-110-VNS-35/120113:user/release-keys' 
04-17 09:33:37.733 6108 6108 I DEBUG : pid: 6100, tid: 6100 >>> com.test.android <<< 
04-17 09:33:37.733 6108 6108 I DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000018 
04-17 09:33:37.733 6108 6108 I DEBUG : r0 00000005 r1 aca83d13 r2 000415a6 r3 81db5c4c 
04-17 09:33:37.733 6108 6108 I DEBUG : r4 00000000 r5 00000000 r6 81db5c4c r7 81db5c40 
04-17 09:33:37.733 6108 6108 I DEBUG : r8 0000cec8 r9 81c8734d 10 002b1284 fp 00000000 
04-17 09:33:37.733 6108 6108 I DEBUG : ip fffffe8c sp bef91e48 lr aca6661b pc aca45c0e cpsr 20000070 
04-17 09:33:37.733 6108 6108 I DEBUG : d0 643a64696f72646e d1 6472656767756265 
04-17 09:33:37.733 6108 6108 I DEBUG : d2 81dbd63081dc20c8 d3 81dc30a081c84481 
04-17 09:33:37.733 6108 6108 I DEBUG : d4 81c844b981db6ccc d5 81dc20b481dc209c 
04-17 09:33:37.733 6108 6108 I DEBUG : d6 81dc20cc81c844ad d7 81c844a181dbb618 
04-17 09:33:37.733 6108 6108 I DEBUG : d8 0000000000000000 d9 0000000000000000 
04-17 09:33:37.733 6108 6108 I DEBUG : d10 0000000000000000 d11 0000000000000000 
04-17 09:33:37.733 6108 6108 I DEBUG : d12 0000000000000000 d13 0000000000000000 
04-17 09:33:37.733 6108 6108 I DEBUG : d14 0000000000000000 d15 0000000000000000 
04-17 09:33:37.733 6108 6108 I DEBUG : d16 bef91b68405515a8 d17 0000000000000000 
04-17 09:33:37.733 6108 6108 I DEBUG : d18 0707070703030303 d19 0000000000000000 
04-17 09:33:37.733 6108 6108 I DEBUG : d20 0100010001000100 d21 0100010001000100 
04-17 09:33:37.733 6108 6108 I DEBUG : d22 0000000000000000 d23 0000000000000000 
04-17 09:33:37.733 6108 6108 I DEBUG : d24 0000000000000000 d25 0000000000000000 
04-17 09:33:37.733 6108 6108 I DEBUG : d26 0100010001000100 d27 0100010001000100 
04-17 09:33:37.733 6108 6108 I DEBUG : d28 0100010001000100 d29 0100010001000100 
04-17 09:33:37.733 6108 6108 I DEBUG : d30 00c7000000c10000 d31 00d3000000cd0000 
04-17 09:33:37.733 6108 6108 I DEBUG : scr 20000012 

Если я бегу это на эмуляторе, он отлично работает.

ответ

0

Найден ответ.
Моя подсказка заключалась в том, что она будет работать нормально, если я запустил ее через затмение, и возникла эта проблема только при создании файла .apk.

Я нашел решение здесь: Application works in debug/run from Eclipse, but .APK gives .classNotFoundException when parsing XML layout that contains a custom View

1
System.loadLibrary() loads library from current project and System.load(fullPathLibName) load library from specific path. 

Итак, используйте System.load().

+0

Спасибо за предложение, но его не имея никаких проблем с поиском библиотеки. Сбой с SEGV при загрузке библиотеки. – bubba

+0

Добавил еще несколько примеров в описание, чтобы показать его поиск и загрузку библиотеки. – bubba

+0

Используйте реализованный класс родных методов с его именем пакета этого приложения, которое работает нормально. Я думаю, что родной метод не может связываться с родной библиотекой. –

Смежные вопросы