JNI代码中的不满意的LinkError
UnsatisfiedLinkError in JNI Code
我正在尝试创建一个简单的JNI项目来掌握JNI,但我一直遇到此错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: HPAProgram.sayHello()
我还没有太多代码,所以我可以在这里粘贴大部分代码。
我运行以下命令:
javac HPAProgram.java
javah HPAProgram
cc -v -c -fPIC -I/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/ HPAProgram.c++ -o libHPAProgram.o
libtool -dynamic -lSystem libHPAProgram.o -o libHPAProgram.dylib
LD_LIBRARY_PATH=.
export LD_LIBRARY_PATH
java HPAProgram
hpapragram.java
public class HPAProgram {
public native void sayHello();
public static void main(String[] args) {
System.loadLibrary("HPAProgram");
System.out.println("In java main");
HPAProgram s = new HPAProgram();
s.sayHello();
}
}
hpapragram.c :
/*
* HPAProgram.c++
*
* Created on: Feb 4, 2014
* Author: zalbhathena
*/
//#include <jni.h>
#include <stdio.h>
#include "HPAProgram.h"
JNIEXPORT void JNICALL Java_JniSample_sayHello (JNIEnv *env, jobject obj) {
printf("Hello World!n");
}
hpapragram.h:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HPAProgram */
#ifndef _Included_HPAProgram
#define _Included_HPAProgram
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HPAProgram
* Method: sayHello
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HPAProgram_sayHello
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
它说
java.lang.unsatisfiedlinkerror:hpapragram.sayhello()
您有:
jniexport void jnicall jnicall java_jnisample_sayhello(jnienv *env,jobject obj)
和
jniexport void jnicall jnicall java_hpaprogram_sayhello(jnienv *,jobject);
修复.c文件以同意.h文件。
相关文章:
- JNI 不满意链接错误: 动态链接库 (DLL) 初始化例程失败
- C++ JNI 不满意的链接错误
- 编译问题LD:不满意的符号
- 不满意的链接错误,当使用LLVM运行javacpp预设时
- 关于在 ndk r15 中的类中初始化的静态成员的不满意链接错误
- 使用 SWIG 将 c++ 包装到 java 不满意的链接错误: HeaderJNI.new_Test()J.
- 发生 JNI 调用 c++ dll "不满意链接错误: 对内存位置的无效访问"
- Eclipse Jni在终端作品中编译时不满意
- JNI代码中的不满意的LinkError
- 本机方法中的不满意的Linkerror
- 不满意的链接错误在iOS但不是Android上,loadLibrary总是成功的
- JNI 和 C++ - 不满意的链接错误
- 使用API21编译时出现不满意的链接错误
- 不满意的链接错误android的OpenALPR测试项目
- JNA 和 C++ - 导致不满意链接错误的简约示例
- JNI HellowWorld 不满意链接错误 找不到依赖库
- JNI 在调用方法时C++不满意的链接错误
- 在 JNI 调用时出现不满意的链接错误
- Java - JNA 和共享库,在 Linux 上从.jar启动时不满意的 LinkError
- 不满意的LinkError 用SWIG包装C++DLL,以允许Java开发人员使用它