Problema con il tutorial "Hello Android"

Sono nuovo di zecca per Eclipse e Android, ma un po 'familiare con Java. Detto questo, ho cercato di seguire il tutorial "Hello Android" dal sito sviluppatore utilizzando l'ultima Eclipse (Galieo) e l'Android SDK 2.1, sono su un Macintosh che esegue Snow Leopard (OS X 10.6). Ho un dispositivo virtuale predefinito (anche se il mio target è in realtà per telefoni come il mio HTC Incredible che ha il processre a snapdragon e, naturalmente, tutti gli ultimi accessori nei telefoni intelligenti).

Tutto sembrava andare bene finché non sono andato a RUN>RUN e poi selezionato 'Applicazione Android'. Il mio computer passa le sue ruote per un po 'e poi vedo due errori. Ho incollato l'output di Eclipse qui sotto:

  • "ID non può essere risolto o non è un field" errore?
  • L'APK firmato ha diversi Key-Hash per Facebook
  • Esecuzione plugin non coperta dalla configuration del ciclo di vita: com.jayway.maven.plugins.android.generation2: android-maven-plugin: 3.5.0: generate-sources
  • java.lang.NoClassDefFoundError: com.facebook.android.Facebook
  • Come get il layout grafico di nuovo in Eclipse per l'applicazione di applicazioni Android?
  • Eccezione del ciclo di events non gestito nel plug-in org.eclipse.ui
  •  [2010-05-04 01:53:46 - HelloAndroid] ------------------------------ [2010-05-04 01:53:46 - HelloAndroid] Android Launch! [2010-05-04 01:53:46 - HelloAndroid] adb is running normally. [2010-05-04 01:53:46 - HelloAndroid] Performing com.example.helloandroid.HelloAndroid activity launch [2010-05-04 01:53:46 - HelloAndroid] Automatic Target Mode: launching new emulator with compatible AVD 'myAVD' [2010-05-04 01:53:46 - HelloAndroid] Launching a new emulator with Virtual Device 'myAVD' [2010-05-04 01:53:58 - HelloAndroid] New emulator found: emulator-5554 [2010-05-04 01:53:58 - HelloAndroid] Waiting for HOME ('android.process.acore') to be launched... [2010-05-04 01:53:59 - Emulator] 2010-05-04 01:53:59.501 emulator[10398:903] Warning once: This application, or a library it uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw and move to Quartz. [2010-05-04 01:54:23 - HelloAndroid] emulator-5554 disconnected! Cancelling 'com.example.helloandroid.HelloAndroid activity launch'! 

    Non vedo mai il text nell'emulatore e l'emulatore si blocca con un messaggio sul fatto che abbandona improvvisamente.

    Il rapporto di crash dice:

     Process: emulator [10472] Path: /Applications/android-sdk-mac_86/tools/emulator Identifier: emulator Version: ??? (???) Code Type: X86 (Native) Parent Process: eclipse [10468] Date/Time: 2010-05-04 02:25:41.153 -0500 OS Version: Mac OS X 10.6.3 (10D573) Report Version: 6 Interval Since Last Report: 2558914 sec Crashes Since Last Report: 4 Per-App Crashes Since Last Report: 2 Anonymous UUID: C5F178C1-5290-4CA9-AD6E-E9C4F5582754 Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x000000001fd2f000 Crashed Thread: 3 

    NOTA: eseguire l'emulatore dalla row di command con:

     iainnitro-Mac:tools iainnitro$ ./emulator -avd myAVD 2010-05-04 02:49:23.011 emulator[10556:903] Warning once: This application, or a library it uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw and move to Quartz. Segmentation fault iainnitro-Mac:tools iainnitro$ 

    produce un errore di segmentazione (come sopra indicato dall'output terminal). Così l'emulatore sta morendo da solo prima che possa essere mostrato qualcosa.

    Ho provato a riavviare i processi ADB.

    Il codice effettivo è line-by-line dal tutorial e non sono mai stato in grado di raggiungere la parte XML ancora.

    Non sono sicuro di cosa non va nel mio ambiente o se è solo un'incompatibilità con Snow Leopard? Vorrei davvero apprezzare qualsiasi aiuto per risolvere questo problema, perché sono molto interessato a sviluppare su questa piattaforma.

    Grazie,

    Mike N Lawrence, Kansas

    7 Solutions collect form web for “Problema con il tutorial "Hello Android"”

    Nessuna esperienza diretta, ma questo sembra essere un problema ricorrente:

    Questo thread suggerisce:

    Non hai lasciato che l'emulatore venga avviato fino in fondo. Inizia quindi aspettare fino a vedere un desktop, proprio come su un telefono reale.

    Questo menziona (sospetto che il punto 1. non è una preoccupazione per te):

    1. Ottieni più RAM. Ero in esecuzione su 256 MB (che credo sia al di sotto dei requisiti minimi), appena aggiornato oggi a 1024 MB (arrivo a lungo), l'applicazione ora inizia bene. Anche se vedo ancora alcuni messaggi di errore nell'emulatore, non sembrano effettivamente fare nulla.

    2. Installare dalla row di command. Questo è un po 'laborius, ma puoi lanciare un emulatore dalla row di command (supponendo che <android sdk path>\tools sia aggiunto alla variabile PATH) basta digitare emulatore, quindi sfogliare la posizione del your_app_here.apk e eseguire

     adb install your_app_here.apk 

    Se si avvia l'emulatore da Eclipse, eseguire prima adb kill-service adb start-service e quindi il adb kill-service adb start-service (o kill-server / start-server . Non assicurare i comandi esatti). Quindi l'applicazione verrà installata sull'emulatore.


    Anche ( un po 'vecchio ma potrebbe ancora essere rilevante )

    Forse l'emulatore è in esecuzione così lento, e il server adb o un altro componente come "DDMS" è un po 'disperato "perché sembra che sia in attesa che l'emulatore iniatializzi l'applicazione di alcuni HOME .
    Ma l'emulatore è in esecuzione lenta, la console in Eclipse invia un messaggio: emulator-5554 disconnected! Cancelling 'com.android.hello.HelloAndroid' launch!; emulator-5554 disconnected! Cancelling 'com.android.hello.HelloAndroid' launch!; e l'emulatore continua a funzionare normalmente e il sistema di avvio è il sistema, ma non eseguire l'applicazione che creo.

    Quindi per questo problema ho eseguito il programma e quando l'emulatore è aperto, torno all'eclipse in prospettiva DDMS e nella scheda Device e premi un button " restart adb server " prima che la console mi mostra il messaggio di " emulator-5554 disconnected! " .
    Lo faccio diverse volte finché l'emulatore non avvia il sistema operativo.
    Dopo aver avviato il sistema operativo sull'emulatore, l'eclipse non invia l'errore di disconnessione e invia l'applicazione che ho creato, anche la console visualizza messaggi in merito.
    Poi appare finalmente sul cellulare "Hello, Android".

    Ci è stata una discussione su questo con due soluzioni proposte http://code.google.com/p/android/issues/detail?id=724

    Commento 17 da zachrcrowe, 06 gennaio 2010 FYI – Ho dovuto cambiare una linea nell'esempio Hello Android per leggere this.setContentView (tv); per far funzionare. Come accennato in precedenza, l'avviso di depreazione non dovrebbe influenzare la funzionalità dell'emulatore.

    Commento 18 da mfrony, 14 gennaio 2010 Ho avuto lo stesso problema quando ho eseguito l'esempio Hello Android. Il modo in cui ho risolto e potrebbe eseguire il mio primo codice Android è stato cambiando il progetto di creazione Target da 1,1 a 1,5.

    Questo sembra essere un timing. Per qualche motivo Eclipse tenta di caricare l'applicazione sull'emulatore prima che sia "pronto". Non so perché questo accada, ma ho trovato un lavoro in giro: basta avviare l'emulatore dalla row di command prima di eseguire l'applicazione.

    1. Avviare la pulizia chiudendo Eclipse (forse l'OP non usciva Eclipse prima di tentare di eseguire la row di command?)
    2. Avviare l'emulatore tramite Terminal navigando alla directory android-sdk-mac_86 / tools e digitando:

      ./emulator -avd my_avd

    3. Apri Eclipse e tenti di eseguire nuovamente il tutorial utilizzando gli stessi passaggi come prima

    4. Una window di dialogo dovrebbe aprire chiedendo se si desidera avviare una nuova AVD o utilizzare quella che è già in esecuzione – scegliere di utilizzare quella che è già in esecuzione.

    quello che ho fatto è stato quello di spostare il cerchio che appare quando l'AVD lancia alla posizione di sblock, e lì è stato "Ciao, Android"!

    Ho avuto questo stesso problema quando ho cercato di eseguire l'emulatore usando un 4.0 AVD. Ha usato per arrestare la schermata di avvio e mostrare 'Segmentazione guasto' nella console. Sono stato in grado di risolvere il problema aumentando la dimensione della scheda SD di AVD a 1 GB da 32 MB.

    Per qualunque motivo, ho smesso di get il difetto di segmentazione quando ho aggiunto:

     this.setContentView(tv); 

    il 'questo' ha risolto il problema. Il guaio seg si verifica se si tenta di eseguire l'emulatore senza alcun file APAP che presumo. (Lo stavo facendo anche dalla linea di command). Spero che il tutorial sarà aggiornato.

    Vedi post correlato

    Un altro post correlato

    Questo funziona per Linux per me:

    • Esegui emulatore (attendi che la schermata iniziale dell'emulatore venga caricata)
    • Fai clic su Finestra> Apri prospettiva> DDMS
    • In Pannello dispositivi, fare clic sul menu a discesa> Reset adb
    • Esegui il progetto
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.