2013-03-25 28 views
1

我收到以下错误,当我运行下面的命令在我的JNI项目JNI头文件示例不如何产生

[email protected]:/home/sat/KISHORE/kishore workspace/Ivijni/bin/classes/com/ivi/jni# javah JniActivity 
    error: cannot access JniActivity 
    bad class file: RegularFileObject[./JniActivity.class] 
    class file contains wrong class: com.ivi.jni.JniActivity 
    Please remove or make sure it appears in the correct subdirectory of the classpath. 
    com.sun.tools.javac.util.Abort 
    at com.sun.tools.javac.comp.Check.completionError(Check.java:180) 
    at com.sun.tools.javadoc.DocEnv.loadClass(DocEnv.java:159) 
    at com.sun.tools.javadoc.RootDocImpl.<init>(RootDocImpl.java:95) 
    at com.sun.tools.javadoc.JavadocTool.getRootDocImpl(JavadocTool.java:188) 
    at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:364) 
    at com.sun.tools.javadoc.Start.begin(Start.java:162) 
    at com.sun.tools.javadoc.Main.execute(Main.java:113) 
    at com.sun.tools.javah.Main.main(Main.java:153) 
    javadoc: error - fatal error 
    2 errors 

我JniActivity.java

public class JniActivity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    System.loadLibrary("hellojni"); 
    new JniActivity().sayHello(); 

} 
private native void sayHello(); 

} 

hellojni创建的头文件。 CPP

#include "hellojni.h" 
#include <iostream> 

using namespace std; 

void sayHello() { 
cout << "Hello World Again!" << endl; 
return; 
} 

任何帮助总是赞赏,感谢

+1

plz请参阅[教程:Android JNI](http://blog.edwards-research.com/2012/04/tutorial-android-jni/)用于创建JNI标题的优秀教程 – 2013-03-25 05:56:59

回答

0

根@ BSD-pc1907:/家庭/ SAT/KISHORE /纪工作区/ Ivijni /斌/班/ COM/IVI/JNI#JAVAH JniActivity

这里有几个问题。

  1. 你在错误的目录中。你应该在/home/sat/KISHORE/kishore workspace/Ivijni/bin/classes
  2. 您正在发出错误的命令。 关于javah的说法,至于javap,rmic和处理.class文件的所有其他Java实用程序都是完全限定的类名,包括程序包名称。你没有提供,所以你得到错误。