jjzjj

findClass

全部标签

java - JNI FindClass 找不到使用 jar 的类

我正在开发一个项目,其中一些Java函数必须使用JNI从C++代码中调用。我已经尝试使用一个简单的Java类,但是当我开始在我的Java项目中使用额外的.jar时,JNI的FindClass函数找不到我的类。我做了一些研究并阅读了有关classpath的内容,如果它使用额外的库,编译.java文件需要它,但是FindClass返回null那种情况。这是我的代码的基本结构JavaVMOptionoptions[2];JNIEnv*env;JavaVM*jvm;JavaVMInitArgsvm_args;longstatus;jclasscls;jmethodIDmid;jintsquar

java - "GetObjectClass"方法和"FindClass"方法区别及用法

在java原生接口(interface)中提供jclassclass=(*env)->FindClass(env,"ClassName");和jclassclass=(*env)->GetObjectClass(env,"ClassName");我想知道这两种方法的区别,以及它是如何通过类名找到一个类的,以及在什么情况下它可以为空。 最佳答案 GetObjectClass允许您检索对象的类,不知道类名。GetObjectClass的第二个参数是一个jobject,而不是类名。另一方面,如果您可以指定类名,FindClass会为您提供

android - ClassNotFoundException-.BaseDexClassLoader.findClass

我在生产构建中遇到了ClassNotFoundException。请在下面找到异常日志。java.lang.RuntimeException:atandroid.app.LoadedApk.makeApplication(LoadedApk.java:578)atandroid.app.ActivityThread.handleBindApplication(ActivityThread.java:4680)atandroid.app.ActivityThread.access$1600(ActivityThread.java:150)atandroid.app.ActivityThr

java - 使用Qt/C++通过JNI调用Java代码。 FindClass 没有找到类

我是JNI的新手,这是我尝试从C++调用Java代码的第一个程序。我正在使用Qt5.2并正在编写一个Android应用程序。我无法找到我的java类并将其加载到我的C++程序中。我在这里阅读了很多关于堆栈溢出和其他地方的帖子,这似乎是一个常见问题,但我还没有能够解决我的问题..我也不确定是否正确设置了JavaVM,因为QAndroidJniEnvironment上的Qt文档很少。我正在寻找有关如何找到我的Java类的解决方案。我也很感谢对代码其他部分的一般反馈(我认为可能会有更多错误)。错误信息:Startingremoteprocess.D/dalvikvm(24911):GC_CO

java - 子类的 JNI FindClass 格式?

加载子类的正确FindClass标识符语法是什么?例如:packagea.b.c;classFoo{classBar{...}}要获取Foo,我可以执行(*env)->FindClass(env,"/a/b/c/Foo"),但要获取Bar通过(*env)->FindClass(env,"a/b/c/Foo/Bar")抛出ClassNotFoundException。是否有不同的语法来表示子类? 最佳答案 没关系,javap工具在这里很有用。正确的语法是:a/b/c/Foo$Bar 关于j

java.lang.ClassNotFoundException : dalvik. 系统.BaseDexClassLoader.findClass

我的GooglePlay开发者控制台不断收到此错误报告。看起来像MultiDex错误。java.lang.RuntimeException:atandroid.app.LoadedApk.makeApplication(LoadedApk.java:516)atandroid.app.ActivityThread.handleBindApplication(ActivityThread.java:4514)atandroid.app.ActivityThread.access$1500(ActivityThread.java:151)atandroid.app.ActivityThre

dalvik.system.BaseDexClassLoader.findClass 中的 java.lang.ClassNotFoundException

java.lang.RuntimeException:UnabletoinstantiateactivityComponentInfo{com.me.hexavoidaa/com.me.hexavoidaa.PTPlayer}:java.lang.ClassNotFoundException:Didn'tfindclass"com.me.hexavoidaa.PTPlayer"onpath:DexPathList[[zipfile"/data/app/com.me.hexavoidaa-1.apk"],nativeLibraryDirectories=[/data/app-lib/co

dalvik.system.BaseDexClassLoader.findClass 中的 java.lang.ClassNotFoundException

java.lang.RuntimeException:UnabletoinstantiateactivityComponentInfo{com.me.hexavoidaa/com.me.hexavoidaa.PTPlayer}:java.lang.ClassNotFoundException:Didn'tfindclass"com.me.hexavoidaa.PTPlayer"onpath:DexPathList[[zipfile"/data/app/com.me.hexavoidaa-1.apk"],nativeLibraryDirectories=[/data/app-lib/co

java - 如何在 Java 中创建 parent-last/child-first ClassLoader,或如何覆盖已在父 CL 中加载的旧 Xerces 版本?

我想创建一个parent-last/child-first类加载器,例如一个类加载器,它将首先在子类加载器中查找类,然后才委托(delegate)给它的父类加载器来搜索类。澄清:我现在知道要获得完整的ClassLoading分离,我需要使用URLClassLoader之类的东西,将null作为它的父级,这要感谢thisanswer回答我之前的问题但是当前的问题可以帮助我解决这个问题:我的代码+依赖jar正在加载到现有系统中,使用ClassLoader将该系统的ClassLoader设置为其父级(URLClassLoader)该系统使用了一些与我需要的版本不兼容的库(例如,旧版本的Xer

java - 如何在 Java 中创建 parent-last/child-first ClassLoader,或如何覆盖已在父 CL 中加载的旧 Xerces 版本?

我想创建一个parent-last/child-first类加载器,例如一个类加载器,它将首先在子类加载器中查找类,然后才委托(delegate)给它的父类加载器来搜索类。澄清:我现在知道要获得完整的ClassLoading分离,我需要使用URLClassLoader之类的东西,将null作为它的父级,这要感谢thisanswer回答我之前的问题但是当前的问题可以帮助我解决这个问题:我的代码+依赖jar正在加载到现有系统中,使用ClassLoader将该系统的ClassLoader设置为其父级(URLClassLoader)该系统使用了一些与我需要的版本不兼容的库(例如,旧版本的Xer