IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Problème d’exécution : "Unfortunately, Application has stopped"


Sujet :

Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 28
    Points : 21
    Points
    21
    Par défaut Problème d’exécution : "Unfortunately, Application has stopped"
    Bonjour tout le monde.
    Dans mon application, j’ai essayé de mettre un TabHost dans un autre Tabhost. eclipse n’affiche aucune erreur mais j’ai un message d’erreur qui s’affiche lors de l’execution au niveau de l’émulateur : «Unfortunately, Application has stopped ».
    Voici le code JAVA du premier Tabhost qui contient 3 onglets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    public class CustomTabsActivity extends TabActivity{
    	private TabHost tabHost;
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    		setTabs();
    	}
     
    	private void setTabs() {
    		tabHost = getTabHost();
     
    		addTab(R.string.tab_1, R.drawable.tab_info);
    		addTab(R.string.tab_2, R.drawable.tab_info);
    		addTab(R.string.tab_3, R.drawable.tab_info);
    	}
     
    	private void addTab(int labelId, int drawableId) {
    		Intent intent = new Intent(this, MockActivity.class);
    		TabHost.TabSpec spec = tabHost.newTabSpec("tab" + labelId);		
     
    		View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_indicator, getTabWidget(), false);
     
    		TextView title = (TextView) tabIndicator.findViewById(R.id.title);
    		title.setText(labelId);
    		ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon);
    		icon.setImageResource(drawableId);
     
    		spec.setIndicator(tabIndicator);
    		spec.setContent(intent);
    		tabHost.addTab(spec);
     
    	}
    }
    Et le fichier XML associé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?xml version="1.0" encoding="utf-8"?>
    <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/tabhost"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:paddingTop="@dimen/tab_space_top" >
     
        <RelativeLayout
            android:id="@+id/tab_relative_layout"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >
     
            <TabWidget
                android:id="@+id/tabs"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" >
            </TabWidget>
     
            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_below="@android:id/tabs" >
            </FrameLayout>
        </RelativeLayout>
     
    </TabHost>
    et le code java du 2 éme TabHost :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    public class MockActivity extends TabActivity {
        //on declare le TabHost comme variable statique afin qu’il soit accessible pour tout le monde  
       public static TabHost tabHost;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.mock);
            tabHost = (TabHost)findViewById(android.R.id.tabhost);
            TabSpec homeTabSpec = tabHost.newTabSpec("tid1");
            Intent mainActivity = new Intent(this, MainActivity.class);
            Drawable d = getResources().getDrawable(R.drawable.setting_onclick);
            ImageView img1 = new ImageView(this);
            img1.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT));
            img1.setPadding(20, 10, 20, 10);
            img1.setImageDrawable(d);
            homeTabSpec.setIndicator(img1).setContent(mainActivity);
            tabHost.addTab(homeTabSpec);
    	/*la même chose pour les autres tabwidget*/
        }
    }
    Et enfin le fichier XML associé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
     
        <TabHost
            android:id="@+id/tabhost"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:background="#777777" >
     
            <RelativeLayout
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" >
     
                <RelativeLayout
                    android:id="@+id/layTab"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_alignParentBottom="true"
                    android:layout_centerVertical="true"
                    android:background="@drawable/btm_bar"
                    android:gravity="center"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp" >
     
                    <TabWidget
                        android:id="@android:id/tabs"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true" />
                </RelativeLayout>
     
                <FrameLayout
                    android:id="@android:id/tabcontent"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_above="@id/layTab"
                    android:layout_alignParentTop="true" />
            </RelativeLayout>
        </TabHost>
    </LinearLayout>
    Merci pour votre aide.

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    "Unfornately ... App. has stopped" veut dire qu'il y a eu une exception non gérée...
    Donc un logcat, avec un joli 'stack-trace'... si tu pouvais poster celui-ci (et toutes la stacktrace)
    Tu peux filtrer ton application et sur le "E" (pour n'avoir que les erreurs)

    Question bête... TabHost / TabWidget c'est pas sensé être déprécié ?
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    TabHost et TabWidget ne sont pas déprécié, mais TabActivity l'est. Google recommande de ne pas les utiliser et de passer par des fragment quand même.

    Bon, je vais lire dans ma boule de cristal, et je dit que ... l'ID de ton TabHost n'est pas bon. Il faut qu'il vaille android:id/tabhost. D'ailleurs, je tiens à faire remarquer que l'erreur, dans ce cas, est très parlante, et indique comment l'enlever. Il suffit de faire ce qu'elle indique, et elle disparaît.

    Si c'est bien ça, : je te conseils fortement d'apprendre à lire les erreurs.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

Discussions similaires

  1. the application has stopped unexpectedly
    Par zerkos dans le forum Android
    Réponses: 15
    Dernier message: 08/01/2013, 17h35
  2. Réponses: 1
    Dernier message: 01/05/2012, 13h33
  3. [NetBeans] Problème avec l'exécutable de mon application
    Par khadi8 dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 02/01/2012, 16h48
  4. Réponses: 2
    Dernier message: 20/12/2011, 10h15
  5. CVCamera (the application has stopped unexpectly)
    Par nizkowsky dans le forum Android
    Réponses: 4
    Dernier message: 16/05/2011, 10h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo