访问纯Android Native项目中的jar文件

时间:2014-09-12 16:41:19

标签: android android-ndk android.mk

我有一个纯本机代码的Android项目。现在,我需要使用第三方jar文件。如何在添加jar文件的情况下构建项目?

此处, FindClass 返回NULL,因为我的jar文件未添加到JavaVM中。

ANativeActivity *activity = __state->activity;
JavaVM *jvm = __state->activity->vm;
JNIEnv *env = NULL;

jvm->GetEnv((void**)&env, JNI_VERSION_1_6);
jint res = jvm->AttachCurrentThread(&env, NULL);

jclass cls = env->FindClass("MyJavaClass"); //cls is NULL

jvm->DetachCurrentThread();

我尝试创建另一个jvm,但在Android中不支持。虽然即使它得到支持也不是一个好主意。

JavaVMInitArgs vm_args;
JavaVMOption* options = new JavaVMOption[1];
std::string str = "-Djava.class.path=res/test.jar"; //Add the jar in jvm
options[0].optionString = (char*)str.c_str();
vm_args.version = JNI_VERSION_1_6;
vm_args.nOptions = 1;
vm_args.options = options;
vm_args.ignoreUnrecognized = false;

JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);

如何正确添加我的jar?我猜测Android.mk文件,但我不知道是什么或如何。

0 个答案:

没有答案