我正在处理一个包含超过65k个方法的项目,我遵循Dex65536流程来构建项目
在我的项目中包含一些。所以文件做数据库加密在我的项目。当使用此自定义规则应用ant任务时,出现如下错误
Warning:No implementation found for native
Error: Lcom.......java.lang.UnsatisfiedLinkError: Native method not found:
我如何解决这个问题,我如何指定。 custom_rules.xml文件
请给我一些建议。
Thanks in advance
如果您的apk在armeabi文件夹中包含.so,那么您不需要查看ant构建过程。
您收到的错误是由于.so无法加载或您的函数名称错误地导出/导入。
你确定下列情况吗?
- 在你的文件中有一个。so库&armeabi-v7a文件夹(你将需要在两个文件夹中的。so,因为一些Android版本在不同的文件夹中)-解压缩apk以100%确定
- .so库是为目标设备的正确架构编译的
- 在java代码中调用System。loadLibrary优先于任何本地代码
- 从本机代码导出的函数遵循正确的命名:
为Java方法
int com.sample.NativeBridge.GetInt()
你需要导出一个pair c方法
JNIEXPORT jint JNICALL Java_com_sample_NativeBridge_GetInt(JNIEnv env , jclass this)
考虑到您有大量的方法,是否有可能将原始容器类拆分为多个类,从而导致C函数名称与正确的命名约定不匹配?