java.lang.UnsatisfiedLinkError:用于第二种方法
java.lang.UnsatisfiedLinkError: for the second method
我正在尝试从用java编写的IntentService调用本机回调方法。IntentService 中的代码片段是这样的 -
private static native void native_notificationCallback();
public void somemethod(){
//some other code...
native_notificationCallback();
}
另一个在一个单独的类中——
private static native void native_initCallback();
public void somemethod(){
//some other code...
native_initCallback();
}
内幕.cpp是这样的——
void JNICALL Notification_initCallback(JNIEnv* env, jobject obj)
{
//code
}
void JNICALL Notification_notificationCallback(JNIEnv* env, jobject obj)
{
//code
}
void init(){
static const JNINativeMethod methods[] =
{
{"native_initCallback","()V",(void*)&Notification_initCallback},
{"native_notificationCallback","()V",(void*)&Notification_notificationCallback}
};
// Register the native hooks
if (env->RegisterNatives(cls, methods,sizeof(methods)/sizeof(methods[0])))
goto fail;
}
问题是当我调用native_initCallback
时它工作得很好,但是当我调用native_notificationCallback
时,应用程序崩溃,导致java.lang.UnsatisfiedLinkError
.我不明白为什么它适用于第一种方法,为什么不适用于第二种方法,因为除了名称之外,它们几乎相同。
您说这两个本机方法位于不同的类中,但是在您的RegisterNatives
调用中,您将它们都分配给一个类。如果要使用不同的类注册每个方法,则必须进行两次RegisterNatives
调用。该方法由类、名称和签名键控。
相关文章:
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 有没有一种方法可以在编译时获得作用域类名
- 有没有一种方法可以测量c++程序的运行时内存使用情况
- 有没有一种方法可以使用placement new将堆叠对象分配给分配的内存
- 有没有一种方法可以通过"typedef"为重新定义的基本类型定义特征和强制转换运算符
- 在 c++ 中,有一种方法可以创建一个包含地图作为值的树状地图?
- C++ STD 函数运算符:有没有一种方法可以通过函数将一个向量映射到另一个向量上?
- 哪种方法更好,性能明智
- 有没有一种方法可以捕获进程中的堆栈溢出?C++Linux
- 我想直接在结构中插入,但没有一种方法可以正确避免填充问题
- 如何知道C2259 VS 2017错误未实现哪种方法?
- 如何同时运行 2 种方法
- 定义类模板构造函数的两种方法之间的区别
- 初始化类的两种方法?
- 类中一种方法的部分专用化
- 只需要知道我在c ++中打印模式的方式是否有效,或者有另一种方法可以有效地做到这一点
- 哪种方法更适合处理虚拟析构函数?
- 创建二维数组的两种方法的区别
- 有没有一种方法可以从输入中找到二维数组的行和列