2013-03-13 16 views
6

Ich habe ein paar native Methoden zu meinem Android Activity class.Now hinzugefügt Ich möchte die Header-Datei für das class erstellen.Erstellen einer Header-Datei für Android-Aktivität

Ich bekomme den folgenden Fehler beim Erstellen der Headerdatei über die Befehlszeile.

C:\AndroidProjects\JniTest\bin\classes>javah -classpath .; 
C:\adt-bundle-windows-x86\sdk\platforms\android.jar com.example.jnitest.JniTest 
Error: cannot access android.app.Activity 
class file for android.app.Activity not found 

Grundsätzlich kann nicht auf die Aktivitätsklasse aus dem Jar zugegriffen werden.

Bitte um Rat.

+3

[Tutorial sehen : Android JNI] (http://blog.edwards-research.com/2012/04/tutorial-android-jni/) Hier finden Sie Schritt-für-Schritt-Anleitung zum Erstellen von JNI-Header. –

+0

Danke..Anyways ... Ich habe ID selbst gemacht..es wird so sein C: \ AndroidProjects \ JniTest \ bin \ Klassen> Java-Classpath C: \ Adt-Bundle-Windows-X8 6 \ sdk \ Plattformen \ android-8 \ android.jar ;. com.example.jnitest.JniTest – amj

+0

@amj - Bitte posten Sie Ihre Ergebnisse als Antwort und akzeptieren Sie sie. – Perception

Antwort

1

Der Befehl wäre (Verwendung Schrägstriche (\) anstelle von Schrägstriche (/), während Windows cmd verwenden):

javah -bootclasspath $ANDROID_SDK_ROOT/platforms/android-17/android.jar -classpath bin/classes com.example.jnitest.JniTest 

Sie -bootclasspath statt Java Class Library von -classpath, da android.jar Wieder Geräte verwenden sollten.

Annahmen:

  • Ihr aktuelles Verzeichnis ist: C:\AndroidProjects\JniTest;
  • Ihr Android SDK ist in $ANDROID_SDK_ROOT (%ANDROID_SDK_ROOT% für Windows) installiert;
  • Ihre Ziel-API-Ebene ist android-17.

Bitte ändern Sie Ihren Befehl entsprechend.

2

Versuchen Sie Folgendes in Eclipse,

Gehen Sie zu> Ausführen | Externe Werkzeuge | Externe Werkzeugkonfigurationen Unter Programm erstellen Sie eine neue Konfiguration, indem Sie auf das kleine Symbol klicken.

Benennen Sie es.

Lage wäre: C: \ Programme \ Java \ jdk1.7.0_04 \ bin \ javah.exe

Working Directory wäre: $ {workspace_loc:/My_First_NDK/bin/Klassen} und

Argumente wären: -classpath $ {workspace_loc:/My_First_NDK/bin/classes} -bootclasspath "C: \ adt-bundle-windows-x86-20140624 \ sdk \ plattformen \ android-19 \ android.jar" -v -d $ {workspace_loc:/My_First_NDK/jni} com.mypackage.ndk.HelloNDK

enter image description here

Verwandte Themen