2012-08-15 11 views
15

Ho recentemente creato un'app per Android con una versione minSdk di 7 e una versione di destinazione di 10dk. Ora sto rendendo compatibile il tablet dell'app e aggiungo le barre di azione. Così ho aggiornato da targetSdkVersion a 15 e nelle proprietà del mio progetto, spostato il mio Project Build Tarket su Android 4.0.3, API 15. Ho anche verificato che il mio Java Compiler fosse 1.6.Scelta dispositivo Android Mostra X rossa nella colonna target

Senza apportare altre modifiche al mio codice, provo a eseguire la mia app e in Scelta dispositivo Android, i miei due dispositivi fisici, versioni 2.3.4 e 3.1, entrambi hanno una X rossa nella colonna Destinazione, invece di il segno di spunta verde.

Sto anche lavorando con l'app di esempio ActionbarCompat e un'app di esempio da ActionbarSherlock e quando eseguo una di quelle app, entrambi i miei dispositivi, mostrano un segno di spunta verde. Entrambe queste app di esempio hanno il Target di build del progetto impostato su 4.0.3 e le stesse impostazioni di sdkVersion che ho nella mia app. Per quanto ne so, la mia app è configurata come le altre. Perché la mia app ha una X rossa accanto alle versioni del mio dispositivo nella colonna Target.

Grazie!

+0

La tua app si riferisce a qualsiasi progetto di libreria? Se lo fa, mi chiedo se è possibile controllare se hai manifestmerger.enabled = true nel tuo file project.properties e vedere se aggiungerlo/rimuoverlo fa la differenza. – Joe

+0

@Joe Ho appena visto questo commento. L'aggiunta di manifestmerger.enabled = true non ha modificato nulla. Sto includendo la libreria ActionBarSherlock e, naturalmente, la libreria di supporto di Android. Le X rosse si sono presentate prima di iniziare a includere tutte le librerie, non appena ho cambiato il Target di costruzione del progetto e aggiornato il mio manifest. – dbDev

+0

puoi fornire il link del actionbarcompat che stai testando? –

risposta

9

In Eclipse, dopo aver cambiato il minSdkVersion e targetSdkVersion

se la "Scelta unità Android" mostra ancora la X rossa sui dispositivi (che dovrebbe essere compatibili). Prova:

  • Aprire la "Configurazione Debug" o "Run Configuration" Dialog
  • Rimuovere tutte le configurazioni in "Applicazione Android"
  • Riprova Right-Click sul Progetto> Debug come> Android Application

Tutti i dispositivi compatibili devono ora attivare il segno di spunta verde.

+0

E 'stato !!! Grazie mille per aver postato questa risposta! Tutti, per favore, vota questa risposta! – dbDev

+0

@Hep ti dispiace spiegare perché ha funzionato se ne conosci il motivo? – JDenais

+0

@JDenais ho assunto che la "configurazione di debug" memorizzasse nella cache i vecchi minSdkVersion e targetSdkVersion, quindi dopo averli modificati, dovresti ricreare la "configurazione di debug" (tasto destro del mouse sul progetto> Debug come> applicazione Android) – Hiep

3

È perché i dispositivi utilizzano versioni Android 2.3.4 e 3.1, , quindi è necessario almeno minSdkVersion = "10". Dopo aver impostato minSdkVersion su 10, otterrai di nuovo il segno di spunta verde.

+0

La domanda diceva che minSdkVersion è già impostato su 7, no? – Joe

+0

@Joe ha ragione, avevo già impostato minSdkVersion su 7. Anche impostarlo su 3 non è stato d'aiuto. Il codice di esempio che ho menzionato sopra è min 3, target 14 e ottengo controlli verdi per quel codice. Non riesco a capire cosa c'è di diverso tra il codice di esempio e il mio codice. – dbDev

+0

L'ho trascurato. –

1

AndroidManifest.xml:

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

Se il manifesto hanno un "targetSdkVersion" superiore al vostro dispositivo, mostrerà una "croce rossa (X)" accanto al firmware.

Se il minSdkVersion è più alto che il dispositivo non sarà nemmeno correre

UPDATE:

Ho testato il progetto di esempio e ottenuto gli stessi risultati come la mia risposta chiarito fin dall'inizio. (image of the project running with same specifications as the question)

+0

Non è corretto, se carichi l'esempio ActionBarCompat, vedrai che utilizza minSdkVersion di 3 e targetSdkVersion di 14. Quando eseguo quell'applicazione, sugli stessi dispositivi che eseguo la mia applicazione, ottengo segni di spunta verdi. Non appena eseguo la mia applicazione, ottengo le x rosse. – dbDev

+0

bene tutto il test che ho fatto se cambio in project> properties> Android il "project build target" su un target più alto del mio dispositivo appare la croce rossa, ma se è più basso appare un check verde. l'hai fatto? o ha appena cambiato il manifest? perché il manifest non aggiorna il target di costruzione del progetto. –

+0

non vedo perché un -1 in qualsiasi modo. Questo è il primo che qualcuno mi dà. –

Problemi correlati