我在ubuntu中运行我的第一个程序。
但是当我尝试运行它时出错:
public class HelloWorld {
public native String nativeHelloWorld();
static {
System.loadLibrary("HelloWorld");
}
public void print(){
{
String str = nativeHelloWorld();
System.out.println(str);
}
}
public static void main(String[] args) {
(new HelloWorld()).print();
return;
}
}
发现了这个错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError:HelloWorld.nativeHelloWorld()Ljava/lang/String;
我该如何解决这个错误?
答案 0 :(得分:0)
这些行取自Getting Stated JNI from SUN site
确保本机库位于其中一个目录中 本机库路径。如果您在Solaris系统上运行,则 LD_LIBRARY_PATH环境变量用于定义本机 图书馆路径。确保它包含目录的名称 包含libHelloWorld.so文件。如果是libHelloWorld.so文件 在当前目录中,您可以发出以下两个命令 在标准shell(sh)或KornShell(ksh)中设置
LD_LIBRARY_PATH
环境变量正确:LD_LIBRARY_PATH=. export LD_LIBRARY_PATH
答案 1 :(得分:0)
对于在Android中运行JNI程序,您应该查看描述here的步骤,您将需要使用此命令构建本机代码
cd <ndk-root>/samples/hello-jni
<ndk_root>/ndk-build
成功构建后,您将获得此目录中的.so文件
\hello-jni\libs\armeabilib\hello-jni.so
假设您正尝试从SDK执行HelloJNi示例程序。一旦你在libs目录中获得了该文件,使用eclipse简单运行按钮运行项目,你将拥有你的HelloWorld :)。