2013-04-01 16 views
11

Ho la seguente Application.mkCome Sbarazzarsi di avviso del compilatore NDK: "APP_PLATFORM è più grande .." e "pacchetto valido"

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 

e durante l'esecuzione NDK-build ottengo sempre gli avvertimenti:

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 

Questo è il mio 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> 

Come posso liberarmi di questi avvertimenti?

+0

Si prega di mostrare il vostro AndroidManifest.xml come 'Nome attributo non valido: pacchetto' è sospetto. –

+0

Ho aggiornato la domanda con il manifest – tmanthey

+0

Hmm, mi sembra a posto, ma questo "attributo non valido ..." significa che alcuni file xml sembrano avere "pacchetto" nel posto sbagliato. 'APP_PLATFORM: = android-9' dovrebbe funzionare. Forse prova una build pulita. –

risposta

3

Per quanto riguarda "pacchetto", questo è molto probabilmente un problema crlf con il file XML. Controlla i caratteri della fine della linea lì. O forse qualcosa non va nel tuo file project.properties.

L'avviso APP_PLATFORM è effettivamente corretto: il tuo APP_PLATFORM (android-14) è più grande di Android: minSdkVersion impostato in AndroidManifest.xml. Questo è solo un avvertimento per ricordarti di questa (legittima) situazione, in modo tale che a un certo punto decidi di abbandonare il supporto per dispositivi datati.

+0

il manifest? Termina con la parentesi ">" ma il delimitatore di riga nel file è CRLF. Dove ho impostato APP_PLATFORM su 14? Ho pensato di impostarlo su 9. – tmanthey

+1

I tuoi sono su Linux, ma il file AndroidManifest.xml ha delimitatori di riga DOS (Windows) ... Questo potrebbe essere un problema. Prova a convertire il file in terminazioni di linea stile Unix. –

+0

Verificare che il file Application.mk sia effettivamente utilizzato. Si noti che ndk-build cerca questo file nella directory jni e utilizzerà silenziosamente uno predefinito se non riesce a trovarne uno. Il modo più semplice è aggiungere qualche errore a Application.mk e vedere ndk-build stop. –

1

È possibile risolvere questo problema eseguendo le seguenti operazioni in Eclipse:

  • Finestra -> Preferenze -> C/C++ -> Build -> Impostazioni
  • Selezionare CDT GNU C/C++ di errore del parser
  • Nelle opzioni Parser errore nella parte inferiore, aggiungere una nuova voce con il seguente contenuto:

Severity: Avviso

Schema: (. ):? (\ D +): Android NDK: ATTENZIONE :()

File:. $ 1

Linea: $ 2

Descrizione: $ 3

Questo dovrebbe convertire questo ad un avvertimento e puoi anche scegliere di ignorarlo, a seconda della gravità mostrata nella vista Problemi.

+0

Sulla mia eclissi la regex dovrebbe essere (. *?): (\ D +): (\ d + :)? NDK Android: ATTENZIONE:. * –

+0

Questo funziona per r8 ... funziona solo parzialmente per r9 – DevByStarlight

+0

Fortunatamente, questo è stato migliorato in r9 - usano '__ndk_info' in questi giorni. –

3

Per NDK R9 giri (lavora in altri troppo ma la linea # possono essere diversi)

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

add "#" a inizio la linea.

# $ (chiamata __ndk_info, ATTENZIONE: APP_PLATFORM $ (APP_PLATFORM) è più grande di Android: minSdkVersion $ (APP_MIN_PLATFORM_LEVEL) a $ (APP_MANIFEST))

Un carattere, 30 secondi fix ... vai di debug codice nativo .

Problemi correlati