为了账号安全,请及时绑定邮箱和手机立即绑定

Android NDK:调用 JNI GetMethodID 时出现未决异

Android NDK:调用 JNI GetMethodID 时出现未决异

哈士奇WWW 2023-07-28 09:43:53
我正在构建一个使用 NDK 和 Java 的 Android 应用程序。该应用程序在调试模式下运行良好。但是当我尝试构建发布 apk 时。它开始崩溃。调试release APK后我发现JNI 在应用程序中检测到错误:调用 JNI GetMethodID 时出现未决异常 java.lang.ClassNotFoundException:未找到类“example.motion.MotionDetectionReturnValue”这是我的 .cpp 类中的问题jobject object;    jmethodID constructor;    jclass cls;    cls = env->FindClass("example/motion/MotionDetectionReturnValue");    constructor = env->GetMethodID(cls, "<init>", "(DDDDDDD)V");    object = env->NewObject(cls, constructor, avg.x, avg.y, totalFraction, bottomRightFraction, bottomLeftFraction, topRightFraction, topLeftFraction);我应该将它附加到 java 线程或类似的东西。我尝试过,但没得到我缺少什么?..谢谢
查看完整描述

1 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

调试版本和发布版本之间的典型区别是后者打开 ProGuard 混淆。这意味着许多类和方法的名称会自动更改。大概,这就是班级里发生的事情吧example.motion.MotionDetectionReturnValue。简单的解决方法是保留 JNI 中涉及的类和方法的名称,而不进行混淆。

更先进的技术也可以保护这些类


查看完整回答
反对 回复 2023-07-28
  • 1 回答
  • 0 关注
  • 88 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信