2010-05-05 6 views
0

Aucune de mes applications ne fonctionne dans l'émulateur. Je cours Ubuntu 9.10 et chaque fois que j'essaie d'accéder à mon interface utilisateur, l'application se bloque. Tout ce que je reçois est un "Désolé, l'application ... s'est arrêtée de manière inattendue". Pour CHAQUE application cela arrive.Les applications Android ne fonctionnent pas dans l'émulateur

package com.mohit.helloandroid; 

import android.app.TabActivity; 
import android.content.Intent; 
import android.content.res.Resources; 
import android.os.Bundle; 
import android.widget.TabHost; 

public class HelloAndroid extends TabActivity { 

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

     Resources res = getResources();  //Resource object to get drawables 
     TabHost tabHost = getTabHost();  //The activity tabhost 
     TabHost.TabSpec spec;   //Reusable tab spec 
     Intent intent; 

     intent = new Intent().setClass(this, HelloAndroid.class); 

     spec = tabHost.newTabSpec("artists").setIndicator("Artists", res 
      .getDrawable(R.drawable.tab_artists)) 
       .setContent(intent); 
     tabHost.addTab(spec); 
    } 
} 

Je ne sais pas comment ce code pourrait éventuellement lancer un tel message.

+0

Pouvez-vous publier l'exception que vous sortez des journaux? – haseman

+0

Il n'y a aucune exception. Voilà pourquoi je suis confus. –

+0

Pouvez-vous poster votre mise en page XML et votre XML androidManifest? – Mark

Répondre

1

Vous avez au moins quelques choses bizarres en cours, l'un d'eux pourrait provoquer la bombe.

D'abord, vous avez appelé:

super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 

Mais vous avez sous-classé TabActivity qui définit sa propre vision du contenu lorsque vous appelez super.OnCreate. Vu le code que vous avez, je devine que votre R.layout.main est probablement vide. Débarrassez-vous de l'appel setContentView.

Ensuite, vous appelez:

intent = new Intent().setClass(this, HelloAndroid.class); 

que vous essayez de créer une intention d'afficher dans un onglet en passant dans cette classe, qui est lui-même un tabHost et va essayer de faire tout cela à nouveau lorsque son onCreate est appelé. Si Android permet que cela se produise, vous auriez juste créé un appel infiniment récursif et le téléphone tomberait en panne quand il manquerait de mémoire. Plus probablement j'imagine qu'Android va bombarder avec quelques exceptions ou que le système d'exploitation ne fera que détruire le processus.

Commencez plus simplement. Créez quelques vues de base dans vos ressources pour les afficher dans vos onglets.