2013-03-25 6 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 –

ответ

0

корень @ BSD-pc1907:/дома/сел/Кишор/Кишор рабочее пространство/Ivijni/bin/классы/ком/IVI/JNI # javah JniActivity

Есть несколько проблем.

  1. Вы находитесь в неправильном каталоге. Вы должны быть в /home/sat/KISHORE/kishore workspace/Ivijni/bin/classes.
  2. Вы вводите неправильную команду. Аргумент javah, что касается javap, rmic и всех других утилит Java, которые имеют дело с .class-файлами, - это полное имя класса, включая имя пакета. Вы не поставляете это, чтобы получать ошибки.