我正在构建一个使用NDK和Java的android应用程序。应用程序在调试模式下运行良好。但当我试图构建release APK时。它开始崩溃。调试发布APK后,我发现
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);
debug和release构建之间的典型区别是后者启用ProGuard混淆。这意味着许多类和方法的名称会自动更改。可能这就是example.motion.motionDetectionReturnValue
类发生的情况。简单的修复方法是保留JNI中涉及的类和方法的名称,而不混淆。参见https://stackoverflow.com/A/24923279/192373。
更先进的技术也允许保护这些类
我得到以下错误: JNI在应用程序中检测到错误:调用JNI GetMethodID时出现挂起的异常java.lang.ClassNotFoundException:在路径:DexPathList[[zip文件“/system/framework/sample.jar”],NativeLibraryDirectories=[/vendor/lib,/system/lib]]上找不到类“package
我不明白为什么我总是得到这个错误
此行得删除指向错误: 异常中的Package name是从其中复制代码的项目的包名。 但我的应用程序的包名是。 我在我的项目中搜索了。 以下是我的清单文件:
以下是我从IntelliJ获得的代码: 当我在spark-shell中运行它时,它正在运行文件:/opt/spark/bin/spark-shell--jars/home/tigergraph/ecosys/tools/etl/tg-jdbc-driver/tg-jdbc-driver-1.2.jar 我怎么才能修好?
当我从EJB调用一个方法时,我遇到了一个奇怪的异常。EJB的方法只是参考BD并返回一个VO。当我从一个独立的客户机调用该方法时,所有这些都能很好地工作,但是当我从同一台服务器、从另一个EJB调用该方法时,它返回:org。天啊。科尔巴。未知:重新引发挂起的异常时发现意外异常:(.VOObject)vmcid:IBM次要代码:EA5已完成:可能 服务器是WebSphereApplicationServ
我从GitHub克隆了我的项目,现在我无法运行我的项目。 我收到以下错误: 知道是什么导致了这个错误吗? 编辑 我检查了这个问题Intellij在我发布到这里之前突然抛出ClassNotFoundException,它没有给我任何解决方案...为什么要将我的问题标记为重复,因为那个问题不能解决我的问题?