【发布时间】:2017-06-22 11:08:17
【问题描述】:
我想隐藏我的 java 代码。所以我在 jni 文件夹中创建 java 类并尝试调用该类方法。但是我在 c++ 中查找类时遇到 ClassNotFound 异常。这可能吗?这是我的第一个 ndk项目。所以我不知道。请告诉我解决方案。
这是我的 C++ 代码
#include <jni.h>
#include <string.h>
#include <iostream>
using namespace std;
extern "C" JNIEXPORT jstring JNICALL
Java_com_example_sohamsaa_ndktest_MyNativeClass_startRecord(JNIEnv* env,jobject obj){
jclass cls2 = env->FindClass("jni/MyTest");//here i'm getting classnotfound exception
if(cls2 == NULL) {
cerr << "ERROR: class not found !";
}
else {
cout << "Class MyTest found" << endl;
jmethodID mid = env->GetStaticMethodID(cls2, "mymain", "()V");
if(mid == NULL)
cerr << "ERROR: method void mymain() not found !" << endl;
else {
env->CallStaticVoidMethod(cls2, mid);
cout << endl;
}
}
return (*env).NewStringUTF("Hi siddharthan");
}
这是我的java类
public class MyTest {
public static void mymain() {
System.out.println("Hello, World in java from mymain");
}
}
【问题讨论】:
-
我想隐藏我的 java 代码。 对谁隐藏?您部署应用的设备的所有者?
-
@Andrew Henle 感谢您的回复。有些客户想在他的项目中实现我的代码。所以我只想给出函数名称。但是如果我制作 jar 文件,他们可以看到我的代码。
标签: java android android-ndk java-native-interface ndk-build