gpt4 book ai didi

java - 使用 .so 文件构建 Ant

转载 作者:太空宇宙 更新时间:2023-11-03 11:10:42 25 4
gpt4 key购买 nike

我正在从事一个包含超过 65k 方法的项目,我遵循了 Dex65536构建项目的过程

在我的项目中,它包含一些.so 文件,用于在我的项目中进行数据库 加密。当使用此自定义规则应用ant 任务时,我出现错误

Warning:No implementation found for native 
Error: Lcom.......java.lang.UnsatisfiedLinkError: Native method not found:

如何解决这个问题以及如何在 custom_rules.xml 文件中指定 .so 文件。

请多多指教。

提前致谢

最佳答案

如果你的 apk 在 armeabi 文件夹中包含 .so,那么你不需要查看 ant 构建过程。

您收到的错误是由 .so 加载失败或函数名称错误导出/导入引起的。

您确定以下几点吗:

  • 在您的 armeabi 和 armeabi-v7a 文件夹中有一个 .so 库(您将需要在两个文件夹中都有 .so,因为某些 Android 版本在不同的文件夹中)- 解压 apk 以确保 100%
  • .so 库是为目标设备的正确架构编译的
  • 在您的 Java 代码中,您先于任何 native 代码调用 System.loadLibrary
  • 从您的 native 代码导出的函数遵循正确的命名:

对于Java方法

int com.sample.NativeBridge.GetInt()

你需要导出一对c方法

JNIEXPORT jint JNICALL Java_com_sample_NativeBridge_GetInt(JNIEnv env, jclass this)

考虑到您有大量的方法,是否可能将原始容器类拆分为多个类,此时 C 函数名称与正确的命名约定不匹配?

关于java - 使用 .so 文件构建 Ant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25486430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com