maoabc / nmmp

dex-vm used to protect the android classes.dex file
736 stars 260 forks source link

Mac端使用jar对aar进行加固时生成的libnmmp.so中找不到com.nmmedit.protect.NativeUtil.classesInit0(int) #50

Open demomath opened 1 year ago

demomath commented 1 year ago
image

运行报错 java.lang.UnsatisfiedLinkError: No implementation found for void com.nmmedit.protect.NativeUtil.classesInit0(int) (tried Java_com_nmmedit_protect_NativeUtil_classesInit0 and Java_com_nmmedit_protect_NativeUtil_classesInit0__I)

maoabc commented 1 year ago

最后apk里有没有libnmmvm.so跟libnmmp.so?

maoabc commented 1 year ago

看看模块的classes.jar里有没有com/nmmedit/protect/NativeUtil.class,之前版本没把这个加入classes.jar,最新源码看看

demomath commented 1 year ago

好的,谢谢啦,我试试

demomath commented 1 year ago
image

这当中都有

demomath commented 1 year ago
image image
demomath commented 1 year ago

java.lang.UnsatisfiedLinkError: No implementation found for void com.nmmedit.protect.NativeUtil.classesInit0(int) (tried Java_com_nmmedit_protect_NativeUtil_classesInit0 and Java_com_nmmedit_protect_NativeUtil_classesInit0__I) at com.nmmedit.protect.NativeUtil.classesInit0(Native Method)

还是一运行就报错就很奇怪

maoabc commented 1 year ago

等下我去测试下,按理加载libnmmp.so后不会出现找不到native方法。

demomath commented 1 year ago

好的,

image image

刚试了下aar中so剔除,再把build/obj/下的so导入app工程也还是报错

maoabc commented 1 year ago

忘记生成jni_init.c代码了,导致没有注册本地方法及一些初始化操作