2010-08-02 16 views
3

Je suis très nouveau pour android, en fait seulement commencé hier. J'ai réussi à obtenir une configuration d'application avec des onglets. Cela fonctionne très bien sur un avd virtuel 2.2 (je pense qu'il s'appelle). Mais la version de mon HTC est 2.0.1 Je poste des extraits du code ci-dessous ainsi que des informations de débogage.Android app java fonctionne sur une version, mais pas la prochaine

Logcat montre l'erreur suivante

08-02 09:56:05.946: WARN/dalvikvm(414): threadid=3: thread exiting with uncaught exception (group=0x4001b188) 
08-02 09:56:05.956: ERROR/AndroidRuntime(414): Uncaught handler: thread main exiting due to uncaught exception 
08-02 09:56:06.196: ERROR/AndroidRuntime(414): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.hyperActiveSolutions/org.hyperActiveSolutions.Organizer}: java.lang.NullPointerException 
08-02 09:56:06.196: ERROR/AndroidRuntime(414):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2481) 
08-02 09:56:06.196: ERROR/AndroidRuntime(414):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2497) 

Il y a plus à cela, mais je pensais que cela était le bit correspondant, le reste est juste la trace longue de la pile.

Mon fichier manifeste Android ressemble à ceci

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

    <activity android:name="Home" ></activity> 
<activity android:name="Account"></activity> 
<activity android:name="Agenda" ></activity> 
<activity android:name="Lists" ></activity> 
</application> 

<uses-sdk android:minSdkVersion="6" android:targetSdkVersion="6"></uses-sdk> 
</manifest> 

Comme vous pouvez le voir le sdk minimum et la cible ont été mis à la version de mon téléphone. C'est le début de ma classe d'entrée. En dessous de la fin de cet extrait, 3 autres onglets sont ajoutés exactement de la même manière que Home.

public class Organizer extends TabActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState);  
     this.setContentView(R.layout.main); 
     final TabHost tabHost = getTabHost(); // The activity TabHost 

    // Create an Intent to launch an Activity for the tab (to be reused) 


    // Initialize a TabSpec for each tab and add it to the TabHost 
    tabHost.addTab(tabHost.newTabSpec("home").setIndicator("Home", 
      getResources().getDrawable(R.drawable.home)).setContent(new Intent().setClass(this, Home.class))); 

Toutes mes ressources existent, y compris les classes que j'instancie avec chaque onglet. La seule autre chose que je peux penser à ce qui pourrait être pertinent est mon main.xml pour la mise en page. Il a été copié à partir du site de développement android, dans l'un des tutoriels.

<?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:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
     <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" /> 
    </LinearLayout> 
</TabHost> 

Comme je l'ai dit il fonctionne bien sur la version 2.2, mais meurt sur 2.0.1 et le message affiché à l'écran est juste « Organisateur termintated de façon inattendue » .... partie du message de toute façon.

Donc, quelqu'un peut-il repérer tout ce que j'ai qui le rendrait pas compatible avec le SDK 2.0.1.

merci à l'avance

pile complète trace

08-02 11:47:54.006: WARN/dalvikvm(2588): threadid=3: thread exiting with uncaught exception (group=0x4001b188) 
08-02 11:47:54.016: ERROR/AndroidRuntime(2588): Uncaught handler: thread main exiting due to uncaught exception 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.organizer/com.organizer.Organizer}: java.lang.NullPointerException 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2481) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2497) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1848) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.os.Handler.dispatchMessage(Handler.java:99) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.os.Looper.loop(Looper.java:123) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.app.ActivityThread.main(ActivityThread.java:4338) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at java.lang.reflect.Method.invoke(Method.java:521) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at dalvik.system.NativeStart.main(Native Method) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588): Caused by: java.lang.NullPointerException 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.widget.TabWidget.onFocusChange(TabWidget.java:351) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.view.View.onFocusChanged(View.java:2622) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.view.View.handleFocusGainInternal(View.java:2445) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.view.ViewGroup.handleFocusGainInternal(ViewGroup.java:403) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.view.View.requestFocus(View.java:3562) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.view.ViewGroup.requestFocus(ViewGroup.java:975) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:1020) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.view.ViewGroup.requestFocus(ViewGroup.java:976) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:1020) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.view.ViewGroup.requestFocus(ViewGroup.java:979) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:1020) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.view.ViewGroup.requestFocus(ViewGroup.java:976) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:1020) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.view.ViewGroup.requestFocus(ViewGroup.java:979) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.view.View.requestFocus(View.java:3513) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.view.View.requestFocus(View.java:3491) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.widget.TabHost.setCurrentTab(TabHost.java:334) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.widget.TabHost.addTab(TabHost.java:213) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at com.organizer.Organizer.onCreate(Organizer.java:25) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2444) 
08-02 11:47:54.256: ERROR/AndroidRuntime(2588):  ... 11 more 
08-02 11:47:54.476: INFO/Process(62): Sending signal. PID: 2588 SIG: 3 
08-02 11:47:54.476: INFO/dalvikvm(2588): threadid=7: reacting to signal 3 
08-02 11:47:54.476: ERROR/dalvikvm(2588): Unable to open stack trace file '/data/anr/traces.txt': Permission denied 
08-02 11:48:01.446: INFO/dalvikvm(2588): Debugger has detached; object registry had 306 entries 
08-02 11:48:02.466: DEBUG/ddm-heap(2588): Got feature list request 
+0

Il ya environ 0 dispositifs dans le monde fonctionnant sous Android 2.0.1. http://developer.android.com/resources/dashboard/platform-versions.html – CommonsWare

+0

@CommonsWare Je dois être l'un des malchanceux, quand je branche mon HTC en éclipse dit son 2.0.1 – zcourts

Répondre

2

Quelle version sdk utilisez-vous pour construire le projet? Si elle est supérieure à 6, vous devez vous assurer que vous n'utilisez pas les parties du sdk qui ont été ajoutées après la version 6. Je vous demande car il semble que vous ayez descendu la version cible de 8 (2.2)

Si cela ne vous aide pas, vous pouvez peut-être poster la trace complète de la pile qui pourrait donner d'autres indices.

+0

J'ai fait descendre de 2.2 , la trace de la pile ci-dessus est pour une nouvelle version du même projet, je viens de créer un nouveau projet Android avec 2.0.1 slectionné puis mis à jour le manifeste et d'autres xml pour être le même. Comme vous pouvez le voir la même erreur se produit ajouter la trace de pile complète. Je ne savais pas quelle version mon téléphone était quand j'ai commencé à suivre les tutoriels du site de développement Android, mais une fois que je l'ai branché pour faire une éclipse de test a dit qu'il était 2.0.1 donc j'ai édité les propriétés du projet et changé en 2.0.1 – zcourts

+0

avez-vous vérifié quelle version du sdk vous utilisez lors de la compilation? – Key

+0

yup, à moins qu'il y ait quelque chose qui me manque. J'ai vérifié, les propriétés du projet et c'est certainement la bonne version sélectionnée. Il semble que cela ne fonctionne pas non plus pour la mise à jour 1 de la version 2.1. J'ai fait un complètement pas de projet, suivi le tutoriel du début à la fin et c'est la même chose. Suite à tout autre tutoriel, les applications fonctionnent bien sur diverses versions, il semble que ce soit les onglets qui causent un problème – zcourts

1

Vous n'avez pas inclus le code de la classe Home; êtes - vous en train de définir accidentellement la vue du contenu de Home sur R.layout.main? J'obtenais cette erreur exacte et c'était le problème - je mettais la vue de contenu d'un onglet à la vue de contenu contenant le TabWidget lui-même

+0

peut-être, j'ai fait les classes à partir de zéro et ça a bien fonctionné à la fin, mais je ne serais pas surpris si c'est le problème était – zcourts