2010-07-06 4 views
3

Je commence tout juste sur le développement android et d'essayer le tutoriel HelloAndroid. Je suis coincé depuis quelques jours maintenant. Au départ, la première fois que je l'ai essayé, tout fonctionne parfaitement et ensuite je passe au deuxième tutoriel tout s'est cassé. J'essaie donc de revenir au tutoriel le plus simple et le plus original et de comprendre ce qui se passe.erreur tutoriel helloandroid: demande de l'heure a échoué

Il y a trois fichiers principaux que j'ai édités: HelloAndroid2.java package com.example.HelloAndroid2;

import android.app.Activity; 
import android.os.Bundle; 

public class HelloAndroid2 extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    } 
} 

main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/textview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:text="@string/hello"/> 

strings.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="hello">Hello World, HelloAndroid2!</string> 
    <string name="app_name">HelloAndroid2</string> 
</resources> 

Ce sont tous du tutoriel.

When I run it, the console output is: 
[2010-07-06 16:37:16 - HelloAndroid2] ------------------------------ 
[2010-07-06 16:37:16 - HelloAndroid2] Android Launch! 
[2010-07-06 16:37:16 - HelloAndroid2] adb is running normally. 
[2010-07-06 16:37:16 - HelloAndroid2] Performing com.example.HelloAndroid2.HelloAndroid2 activity launch 
[2010-07-06 16:37:16 - HelloAndroid2] Automatic Target Mode: using existing emulator 'emulator-5554' running compatible AVD 'HelloWorld' 
[2010-07-06 16:37:16 - HelloAndroid2] WARNING: Application does not specify an API level requirement! 
[2010-07-06 16:37:16 - HelloAndroid2] Device API version is 8 (Android 2.2) 
[2010-07-06 16:37:16 - HelloAndroid2] Uploading HelloAndroid2.apk onto device 'emulator-5554' 
[2010-07-06 16:37:16 - HelloAndroid2] Installing HelloAndroid2.apk... 
[2010-07-06 16:37:22 - HelloAndroid2] Success! 
[2010-07-06 16:37:22 - HelloAndroid2] Starting activity com.example.HelloAndroid2.HelloAndroid2 on device 
[2010-07-06 16:37:26 - HelloAndroid2] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.HelloAndroid2/.HelloAndroid2 } 

Ainsi, il se suffit coincé au départ: l'intention ... L'émulateur montre avec l'heure, la date et la fac qu'il est en charge. Je développe sur Android 2.2. J'essaie d'obtenir des données sur LogCat et ce sont les dernières lignes:

07-06 20:37:25.935: INFO/AndroidRuntime(387): NOTE: attach of thread 'Binder Thread #3' failed 
07-06 20:37:27.265: INFO/ActivityManager(65): Displayed activity com.example.HelloAndroid2/.HelloAndroid2: 1461 ms (total 1461 ms) 
07-06 20:37:32.376: DEBUG/dalvikvm(114): GC_EXPLICIT freed 562 objects/31672 bytes in 95ms 
07-06 20:37:37.386: DEBUG/dalvikvm(197): GC_EXPLICIT freed 82 objects/7592 bytes in 87ms 
07-06 20:37:42.386: DEBUG/dalvikvm(250): GC_EXPLICIT freed 26 objects/1120 bytes in 102ms 
07-06 20:38:10.437: DEBUG/SntpClient(65): request time failed: java.net.SocketException: Address family not supported by protocol 

Donc, fondamentalement, rien ne se passe sur l'émulateur et il devrait dire HelloAndroid ou quelque chose comme ça. S'il vous plaît aider.

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.example.HelloAndroid2" 
     android:versionCode="1" 
     android:versionName="1.0"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".HelloAndroid2" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

    </application> 


</manifest> 
+0

Pouvez-vous poster votre manifeste? – xil3

Répondre

0

Alors pourquoi ne pas commencer simple, et de créer une nouvelle AVD en spécifiant un min. SDK pour ça, donc ça sera là.

Ensuite, pour exécuter ce AVD de manière fiable, assurez-vous qu'aucune application Android n'est en cours d'exécution, puis à partir de Eclipse Run! Run Configurations ...! Target! Manual! <Run>! Lancez un nouveau périphérique virtuel Android! [Puis cliquez sur l'élément de ligne du volet pour mettre en surbrillance ce AVD]! <OK>.

Attendez que le chargement se fasse (attendez la ligne "ActivityManager: Starting: Intent" sur les commentaires de la console Eclipse). Ensuite, appuyez sur <Menu> sur la peau.

Si cet AVD est déjà en cours d'exécution et que vous voulez l'exécuter à nouveau, modifiez une ligne dans votre code Java, puis exécutez! Configurations d'exécution ...! Cible! Automatique! <Apply>! <Run>.

+0

Merci utilisateur225626! J'ai essayé ça et ça marche! Cependant, il y a quelques problèmes. Après avoir créé un nouvel AVD et l'avoir exécuté en tant que cible-> manual-> new AVD, je peux obtenir l'émulateur pour afficher la chaîne HelloAndroid simple. Alors ça fonctionne Cependant, lorsque je retourne à run-> run configurations -> target -> automatic, le seul fichier AVD répertorié pour le déploiement est le fichier original (ancien et cassé) au lieu du nouveau. Quand j'essaye avec celui-là, ça ne marche pas. Pire, une fois que j'utilise l'ancien, même si je choisis le manuel et sélectionne le nouveau, le nouveau cesse de fonctionner. – okysabeni

+0

En d'autres termes, je dois créer un nouveau AVD. A partir de là, je peux cliquer sur run -> run et il demandera l'exécution de l'AVD en cours (nouveau) et toutes les modifications que je ferai apparaîtront à l'émulateur. Donc, il ajoute une étape de plus au moins cela fonctionne :) – okysabeni

+0

Des informations supplémentaires sur l'erreur AVD: Lorsque j'essaie le vieux AVD (Android 2.2, le nouveau est Android 2.1u1), l'émulateur commence à partir de l'écran noir avec Android puis un fond bleu avec un symbole de verrouillage sur la gauche et un symbole de son/volume sur la droite. Il a également l'heure, la date et la charge au milieu. Cependant, avec l'autre AVD, il va de l'écran noir à un affichage avec google search avec fond bleu et icônes. Ensuite, il montre la sortie correcte. Cela semble juste étrange. Merci pour l'aide. En attendant, je vais juste supprimer le 2.2 AVD et coller avec le nouveau 2.1 AVD. Merci beaucoup! – okysabeni

1
WARNING: Application does not specify an API level requirement! 

définir android: minSdkVersion dans votre fichier manifest.xml

</application> 

    <uses-sdk android:minSdkVersion="3" /> 

</manifest> 
+0

Merci Jorgesys! J'ai essayé mais ça ne marche toujours pas. Sur la sortie de la console, je suis toujours bloqué à: [2010-07-07 13:40:00 - HelloAndroid2] ActivityManager: Démarrage: Intent {act = android.intent.action.MAIN cat = [android.intent .category.LAUNCHER] cmp = com.example.HelloAndroid2/.HelloAndroid2} et l'émulateur affiche le même écran et non le texte HelloAndroid. – okysabeni

-1

Je pense que vous oubliez de définir l'accès internet à AndroidManifest.xml

<uses-sdk android:minSdkVersion="8" /> 
<uses-permission android:name="android.permission.INTERNET"/> 
+0

Cela ne répond pas à la question. Le tutoriel HelloAndroid n'a pas besoin d'accès Internet – CocoNess

Questions connexes