2012-12-09 12 views
37

Sto provando a completare questo tutorial dalla pagina Android http://developer.android.com/training/basics/firstapp/starting-activity.html Ma I Eclipse genera questo errore: "Nessun identificativo risorsa trovato per l'attributo 'parentActivityName' nel pacchetto ' android "" Ho incluso la libreria di supporto Android.Nessun identificatore di risorsa trovato per l'attributo 'parentActivityName' nel pacchetto 'android'

Ecco l'intero codice AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.myfirstapp" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="11" 
    android:targetSdkVersion="15" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/title_activity_main" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name="com.example.myfirstapp.DisplayMessageActivity" 
     android:label="@string/title_activity_display_message" 
     android:parentActivityName="com.example.myfirstapp.MainActivity" > 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.example.myfirstapp.MainActivity" /> 
    </activity> 
</application> 

+0

possibile duplicato di [android: parentActivityName non funziona sebbene sia supportato android-support-v4.jar] (http://stackoverflow.com/questions/14891032/androidparentactivityname-doesnt-work-although-android-support- v4-jar-is-inclu) –

+0

Penso che il manuale di Android sia un po 'fuorviante. Se non si utilizza il target min 16, ovviamente l'attributo "parentActivityName" non verrà compilato. Penso che la risposta avrebbe dovuto essere questa: Se min SDK <16: aggiungere la voce meta-dati "android.support.PARENT_ACTIVITY". se min-sdk> = 16: aggiungere l'attributo "parentActivityName". Non vedo un motivo per usarli entrambi contemporaneamente ... – Shoham

+0

È necessario disporre delle API più recenti in modo che possano essere costruite contro di esse. Assicurati di scegliere come target un'API che si trova dopo il 15. – Tarik

risposta

57

android:parentActivityName appare prima in Android 4.1 (livello di API 16). È necessario disporre dell'ultimo SDK 4.1 per compilarlo.

+0

In questo caso l'app verrà eseguita su piattaforme con 4.1? (Ci scusiamo per essere un tale noob) –

+1

Se si include la libreria di compatibilità 4.1 nel proprio APK e si utilizza 'android: minSdkVersion =" 11 "', verrà eseguito su qualsiasi livello dall'API 11 e versioni successive. –

+0

Quindi perché il [tutorial] (http://developer.android.com/training/basics/firstapp/starting-activity.html) dichiara esplicitamente che gli attributi sconosciuti vengono ignorati quando si compila con API inferiori? O la tua risposta non è corretta o c'è un grosso bug nello sdk di Android o i tutorial ufficiali hanno completamente torto nel supportare gli SDK più vecchi. Nota anche che il tutorial collegato usa 'android: minSdkVersion =" 8 "', quindi dovrebbe esserci un modo per farlo funzionare per le API <11. – Bakuriu

24

Per aggiungere alla risposta di David Wasser, se si utilizza Eclipse e si installa la libreria SDK corretta ma si verifica ancora questo errore, significa che mentre la libreria corretta è installata, Eclipse non la utilizza per questo progetto.

Per modificare ciò, andare alle Proprietà del progetto (fare clic con il tasto destro sul suo nome in Package Explorer ed è l'ultima ma una opzione), selezionare Android nella colonna di sinistra e si dovrebbe avere un elenco chiamato Target di progetto . Poi:

  • selezionare la destinazione appropriata (Android 4.2.2 o le API di Google per piattaforma 4.2.2 in questo caso)

  • salvare il file manifesto (fare una modifica banale se necessario)

Una volta salvato Eclipse lo elabora e quegli errori dovrebbero scomparire quando Eclipse trova l'identificatore di risorsa nel nuovo target di build.

+0

È strano che ho dovuto fare il cambiamento banale e poi salvare. Non indovinerei mai. Ad ogni modo, aggiungo uno spazio, quindi lo cancello e poi salvi. –

1

Questo errore si verifica anche se non si dispone della versione esatta dell'SDK utilizzata dall'app campione come target di build. Seguendo gli stessi passi descritti da Julien sopra e scegliendo un SDK che hai localmente, lo risolverà.

0

In IntelliJ IDEA, è necessario cambiare qualcosa in Impostazioni piattaforma ->SDK ->Android qualcosa ->Corporatura obiettivo PER 4.1+.

Se non si vede l'opzione, è necessario un SDK versione 4.1 o successiva (livello API 16+).

Problemi correlati