2015-11-09 1 views
0

Я извлек файл .so из apk, который я не писал, и добавил его в качестве библиотеки в моем проекте студии Android.
Я объявлял имя класса с .so файлом, однако студия не может разрешить имя встроенного метода. Как я могу определить прототип собственного метода только с файлом .so?Как использовать функции в .so файле в android

ответ

0

Вы можете перечислить все символы в файле .so и найти экспортированные вызовы JNI. Если методы JNI не зарегистрированы в JNI_Onload, они обычно имеют префикс Java_com_xxx. Таким образом, вы можете получить все имена символов, следуя команде. Предположим, вы установили NDK в свою среду разработки.

$ arm-linux-androideabi-readelf -s libtest.so |arm-linux-androideabi-c++filt |grep Java 
+0

Спасибо! Я получил название функции. : 'Java_kr_co_lab_interc' Итак, я создал собственный метод с именем' interc' в пакете с именем 'kr.co' и class с именем' lab', но студия все еще не может решить. Не могли бы вы дать мне подсказку? – soonoo

+0

'.so' файл находится в папке libs проекта как расширение .jar. – soonoo

+0

Загрузите библиотеку в классе lab, вызвав' System.loadLibrary (""); ' – alijandro

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