Typ 'jint' konnte nicht gelöst werden, und JNIEnv, jclass

Versuche, eine einfache HalloWorld Android / Java Anwendung mit jni c Code zu bauen. Ich benutze Eclipse Indigo auf Windows 7. Installiert ndk r8 in einem Nicht-Space-Pfad, haben die c-Bibliothek endlich gut mit ndk-build.cmd. Allerdings hat die von javah erzeugte Header-Datei ungelöste Fehler,

  • Typ 'jint' konnte nicht aufgelöst werden
  • Typ 'JNIEnv' konnte nicht behoben werden
  • Typ 'jclass' konnte nicht behoben werden

Es war nicht zu sehen, die jni.h gehören gestern, aber nach einem Neustart an diesem Morgen, ist dieser Fehler verschwunden. Ich hatte auch einen ungelösten JNIEXPORT und JNICALL Fehler, aber #defining sie scheint das gelöst zu haben. Stuck auf den letzten 3 oben. Haben Sie google und Stack Overflow für Antworten gesucht, aber sobald jemand eine Lösung findet sie nicht sagen, was diese Lösung war 🙁

Ich habe die Einbeziehung in Java und C / C ++ Perspektiven in Projekteigenschaften überprüft. Es scheint, dass jni.h Verzeichnisse, die ich will, bin ich mit dem Android-14 für Arm-Plattformen. Das Ziel ist ein 4.0.3 IceCream Sanwich (was verwirrend ist API 15 ?!). Ich würde versuchen, einen AVD zum Testen zu verwenden. Ich habe versucht, das Projekt zu schließen / wieder zu öffnen, von Eclipse zu löschen und zu reimportieren, aber nichts davon hat gearbeitet.

Bin ich vermisse einige enthält? Welche und wo soll ich sie einstellen? Würde wirklich etwas Hilfe schätzen.

  • Fopen in JNI C-Code fehlgeschlagen für Datei in Assets Ordner in Android-Anwendung platziert
  • Update RecyclerView.Adapter nach Kameraabsicht
  • Sollten wir anonyme Klassen für OnClickListeners oder innere Klassen verwenden?
  • Was ist der Standard-Timeout-Wert von java.net.Socket in Android?
  • HTTPS GET (SSL) mit Android und selbst signiertem Server-Zertifikat
  • Verwenden von ImageMagick in meiner Android-Anwendung
  • Fehler beim Versuchen, XML-Parsing mit Robolectric zu testen
  • Android vergleichen Sonderbriefe
  • 3 Solutions collect form web for “Typ 'jint' konnte nicht gelöst werden, und JNIEnv, jclass”

    Kürzlich habe ich mit dem gleichen Problem konfrontiert. In meinem Fall war das Problem, dass ich mein Eclipse-Projekt in C ++ – Projekt umgewandelt habe, aber ich hatte den C-Typ benutzt. <nature>org.eclipse.cdt.core.ccnature</nature> dieses Problem zu lösen, habe ich einfach die Zeile <nature>org.eclipse.cdt.core.ccnature</nature> aus der .project aus dem Projektverzeichnis gelöscht:

     <natures> <nature>com.android.ide.eclipse.adt.AndroidNature</nature> <nature>org.eclipse.jdt.core.javanature</nature> <nature>org.eclipse.cdt.core.cnature</nature> <nature>org.eclipse.cdt.core.ccnature</nature> <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> <nature>edu.umd.cs.findbugs.plugin.eclipse.findbugsNature</nature> </natures> 

    Dann starte deine Eclipse neu. Für weitere Informationen können Sie dies lesen.

    Klicken Sie mit der rechten Maustaste auf Projekt und gehen Sie zu Eigenschafteneigenschaften.

    Gehen Sie zu C / C ++ Allgemein-> Pfade und Symbole .

    In Includes-> GNU C addiere das Äquivalent dazu:

    %ndkroot%\platforms\android-8\arch-arm\usr\include

    Vielleicht möchten Sie auf andere Plattform-Versionen der NDK zeigen, nur ändern Sie die Android-8 Teil des Pfades.

    Versuchen Sie, ein #undef __cplusplus kurz vor den #include Anweisungen hinzuzufügen, wie #undef __cplusplus :

     #undef __cplusplus #include <string.h> #include <jni.h> 

    Dies wird Eclipse dazu zwingen, die non-c++ Definitionen der NDK-Objekte zu berücksichtigen.

    Das Android ist ein Google Android Fan-Website, Alles über Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.