我有一个纯本机代码的 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);
如何正确添加我的罐子?我在 Android.mk 文件中猜测,但我不知道是什么或如何。