2013-04-01 2 views
11

Ich habe folgendes Application.mkWie Sie sich von NDK Compiler-Warnung loswerden: „APP_PLATFORM größer ..“ und „Ungültige Paket“

APP_PLATFORM := android-9 
APP_STL := gnustl_static 
APP_CPPFLAGS := -frtti -fexceptions -O2 -mfpu=neon -mfloat-abi=softfp 
APP_ABI := armeabi-v7a 
LOCAL_ARM_NEON := true 

und wenn NDK-build läuft ich die Warnungen immer erhalten:

Invalid attribute name: 
    package 
/Users/tmanthey/Documents/android/android-ndk-r8d/build/core/add-application.mk:128: Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion in ./AndroidManifest.xml  
Invalid attribute name: 
    package 

Das ist mein AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.evotegra.aCoDriver" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="17" /> 

    <uses-permission android:name="android.permission.CAMERA" /> 

    <uses-feature android:name="android.hardware.camera" /> 
    <uses-feature android:name="android.hardware.camera.autofocus" /> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.VIBRATE"/> 

    <application 
     android:name=".ACoDriverApp" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" android:allowBackup="true"> 
     <activity 
      android:name=".ACoDriverActivity" 
      android:label="@string/app_name" android:launchMode="singleTask"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name="PreferencesActivity" /> 
     <activity android:name="GaugeSelectActivity" /> 
    </application> 

</manifest> 

Wie kann ich diese Warnungen loswerden?

+0

Bitte zeigen Sie Ihre AndroidManifest.xml als 'Ungültiger Attributname: Paket' ist verdächtig. –

+0

Ich habe die Frage mit dem Manifest aktualisiert – tmanthey

+0

Hmm, sieht für mich ok aus, aber dieses 'Ungültige Attribut ...' bedeutet, dass einige XML-Dateien 'Paket' an der falschen Stelle zu haben scheinen. 'APP_PLATFORM: = android-9' sollte funktionieren. Vielleicht versuchen Sie einen sauberen Build. –

Antwort

3

In Bezug auf "Paket" ist dies wahrscheinlich einige crlf Problem mit Ihrer XML-Datei. Überprüfen Sie die Zeilenendenzeichen dort. Oder, vielleicht stimmt etwas in Ihrer project.properties Datei nicht.

Die Warnung APP_PLATFORM ist tatsächlich korrekt: Ihre APP_PLATFORM (Android-14) ist größer als Android: MinSdkVersion, die Sie in AndroidManifest.xml festgelegt haben. Dies ist nur eine Warnung, um Sie an diese (legitime) Situation zu erinnern, so dass Sie sich irgendwann dazu entschließen, die Unterstützung für sehr veraltete Geräte einzustellen.

+0

das Manifest? Es endet mit der Klammer ">", aber der Zeilenbegrenzer in der Datei ist CRLF. Wo habe ich die APP_PLATFORM auf 14 gesetzt? Ich dachte, ich setze es auf 9. – tmanthey

+1

YOu sind auf Linux, aber AndroidManifest.xml Datei hat DOS (Windows) Line Delimeter ... Dies könnte ein Problem sein. Versuchen Sie, die Datei in Unix-Stil-Zeilenendungen zu konvertieren. –

+0

Überprüfen Sie, ob Ihre Application.mk-Datei tatsächlich verwendet wird. Beachten Sie, dass ndk-build nach dieser Datei im jni-Verzeichnis sucht und standardmäßig eine Standarddatei verwendet, wenn sie keine finden kann. Der einfachste Weg besteht darin, einen Fehler zu Ihrer Application.mk hinzuzufügen und ndk-build stop zu sehen. –

1

Sie können dieses Problem beheben, indem Sie die folgenden Schritte in Eclipse ausführen:

  • Fenster -> Einstellungen -> C/C++ -> Erstellen -> Einstellungen
  • Select CDT GNU C/C++ Fehler Parser
  • In den Fehler Parser-Optionen an der Unterseite, um einen neuen Eintrag mit folgendem Inhalt hinzufügen:

Schweregrade: Warnung

Muster: (. ): (\ d +): Android NDK: WARNUNG :()

Datei:. $ 1

Line: 2 $

Beschreibung: $ 3

dass dies zu einer Warnung umwandeln sollte und Sie können dies auch ignorieren. Je nach Schweregrad wird es in der Problemansicht angezeigt.

+0

Auf meiner Eclipse sollte die Regex (. *?) Sein: (\ d +): (\ d + :)? Android NDK: ACHTUNG:. * –

+0

Das funktioniert für r8 ... funktioniert nur teilweise für r9 – DevByStarlight

+0

Glücklicherweise verbesserte sich dieses in r9 - sie benutzen '__ndk_info' in diesen Tagen. –

3

Für NDK rev r9 (funktioniert auch in anderen, aber Zeile # abweichen können)

$ {} NDK /build/core/add-application.mk Linie 138

add "#" am Anfang die Linie.

# $ (nennen __ndk_info, WARNING: APP_PLATFORM $ (APP_PLATFORM) größer ist als android: minSdkVersion $ (APP_MIN_PLATFORM_LEVEL) in $ (APP_MANIFEST))

Ein Zeichen, 30 Sekunden fix ... gehen Debug-nativen Code .

Verwandte Themen