首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JNIEnv->FindClass()在JNI_OnLoad中失败

JNIEnv->FindClass()在JNI_OnLoad中失败
EN

Stack Overflow用户
提问于 2012-04-18 05:08:50
回答 1查看 3.7K关注 0票数 1

可能重复:

How do I load my own Java class in C on Android?

Application works in debug / run from Eclipse, but .APK gives .classNotFoundException when parsing XML layout that contains a custom View

在Android中,我访问的是一个本机C库,方法是:

代码语言:javascript
复制
System.loadLibrary("testlib");

加载本机库。在JNI_OnLoad()函数中,它试图找到一个Java代码类:

代码语言:javascript
复制
JNIEXPORT jint JNI_OnLoad(JavaVM *vm, void *reserved) {
        JNIEnv *env;
        jclass k;
        jint r;

        r = vm->GetEnv ((void **) &env, JNI_VERSION_1_4);
        k = env->FindClass ("com/test/android/aclass");

FindClass()失败,并引发NoClassDefFoundError异常。知道为什么我不能从C代码中看到我的Java类吗?

我在另一个测试应用程序中使用相同的库,它可以工作(因此我确信库可以工作)。我不明白为什么一个应用程序可以找到java类,而另一个应用程序却找不到。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-20 02:34:06

找到答案了。

我的提示是,如果我在eclipse中运行它,并且只有在我创建.apk文件时才会出现这个问题,它就会运行得很好。

我在这里找到了解决方案:Application works in debug / run from Eclipse, but .APK gives .classNotFoundException when parsing XML layout that contains a custom View

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10203140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档