如源码java文件:
frameworks/base/Java下 :
android.hardware.Camera:
有方法:
private native final void native_release();
如果调用次方法会直接进jni的方法?
cpp文件:
frameworks/base/jni下:
android_hardware_Camera.cpp:
有方法:
void JNICameraContext::release()
{
//内容不说
}如何新加一个自己jni方法?
我的做法:java文件:
frameworks/base/Java下 :
android.hardware.Camera:
新建方法:
private native final int native_new_method();cpp文件:
frameworks/base/jni下:
android_hardware_Camera.cpp:
新的方法:
static jint native_new_method(JNIEnv *env, jobject clazz){
jint ntextright = 1000;
return ntextright;
}并加入:
static JNINativeMethod method_table[] = {
{ "native_release","()V",(void*)android_hardware_Camera_release }, //之前的那个方法也再这里注册了
{ "native_new_method", "()I", (void*)native_new_method}, //为我们的方法注册
};
但是我怎么每次调用都会报连接没有定义的错误(UndefinitionLinkError)?
frameworks/base/Java下 :
android.hardware.Camera:
有方法:
private native final void native_release();
如果调用次方法会直接进jni的方法?
cpp文件:
frameworks/base/jni下:
android_hardware_Camera.cpp:
有方法:
void JNICameraContext::release()
{
//内容不说
}如何新加一个自己jni方法?
我的做法:java文件:
frameworks/base/Java下 :
android.hardware.Camera:
新建方法:
private native final int native_new_method();cpp文件:
frameworks/base/jni下:
android_hardware_Camera.cpp:
新的方法:
static jint native_new_method(JNIEnv *env, jobject clazz){
jint ntextright = 1000;
return ntextright;
}并加入:
static JNINativeMethod method_table[] = {
{ "native_release","()V",(void*)android_hardware_Camera_release }, //之前的那个方法也再这里注册了
{ "native_new_method", "()I", (void*)native_new_method}, //为我们的方法注册
};
但是我怎么每次调用都会报连接没有定义的错误(UndefinitionLinkError)?
你有把实现的native方法和头文件加mk文件一起编译成so库供自己调用吗??
我全局make生成的system.img文件 不行吗?
我是直接再系统源码当中做的 想帮它多添加个jni方法
你编译的整个img 文件,你可以看下system/lib下面有没有你的那个so
Camera.getParameters().isZoomSupported() -->true
Camera.getParameters().isSmoothZoomSupported() -->false这种情况下,我怎么才能实现变焦呢??