Problème en cours d'exécution android HelloTabWidget exemple - NullPointerException sur addTab()

J'ai essayé de la Onglet Mise en page exemple, et j'ai aussi corrigé les quelques fautes de frappe dans l'exemple (et ajouté toutes les activités pour le manifeste). Cependant, lorsque je l'exécute sur l'émulateur, je reçois un NullPointerException sur la première ligne qui dit

tabHost.addTab(spec);

Donc ma question est, bien sûr, est. Quel est le problème avec l'exemple qui serait la cause de cette exception? Je suis à l'aide d'Eclipse Galileo et de définir le package cible sous Android 1.5. Jusqu'à présent, je n'ai pas eu d'autres problèmes avec les autres exemples sur l'android dev site.

package com.example.hellotabwidget;
import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.TabHost;
public class HelloTabWidget extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) throws RuntimeException {
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 TabSpec for each tab
Intent intent;  //Reusable Intent for each tab
//Create an Intent to launch an Activity for the tab (to be reused)
//final Context context = getApplicationContext();
intent = new Intent().setClass(this, ArtistsActivity.class);
//Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("artists").setIndicator("Artists",
res.getDrawable(R.drawable.ic_tab_artists))
.setContent(intent);
tabHost.addTab(spec); //******** NullPointerException after running this line
//Do the same for the other tabs
intent = new Intent().setClass(this, AlbumsActivity.class);
spec = tabHost.newTabSpec("albums").setIndicator("Albums",
res.getDrawable(R.drawable.ic_tab_artists))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, SongsActivity.class);
spec = tabHost.newTabSpec("songs").setIndicator("Songs",
res.getDrawable(R.drawable.ic_tab_artists))
.setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTabByTag("artists");
}
}

main.xml:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp" />
</LinearLayout>
</TabHost>
Il n'y a pas de ligne qui dit tabHost.setTab(spec);, en grande partie parce qu'il n'y a pas de setTab() méthode utilisée dans cet exemple. En fait, je ne peux pas en trouver un dans le SDK Android en général.
Oups, c'était une faute de frappe dans ce post, pas dans mon code. J'ai mis à jour ma question et publié plus de code.
J'ai revisité ce problème et a trouvé qu'il fixe lui-même. Il doit de fait d'un bug dans le SDK parce que j'ai ouvert le projet mois plus tard et il a fonctionné sans problèmes.
J'ai eu le même problème - vérifiez votre émulateur de configuration et si elle est attachée à débogueur.

OriginalL'auteur poindextrose | 2010-02-21