2010-05-05 67 views
0

我的应用程序都不在模拟器中工作。我运行Ubuntu 9.10,每次尝试访问我的用户界面时,应用程序都会崩溃。我所得到的只是一个“对不起!应用程序意外停止”。对于每个应用程序,都会发生Android应用程序不能在模拟器中工作

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); 
    } 
} 

我不知道这段代码如何可能抛出这样的消息。

+0

你可以发布你从日志中获得的异常吗? – haseman 2010-05-05 22:35:42

+0

没有例外。这就是我困惑的原因。 – 2010-05-05 23:17:14

+0

你能发布你的布局XML和你的androidManifest XML吗? – Mark 2010-05-06 00:37:22

回答

1

你至少已经有几件噩耗发生了,它们中的任何一件都可能造成炸弹。

首先你叫:

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

但是你已经子类化TabActivity其中规定,当你调用super.OnCreate自己的内容视图。鉴于你的代码,我猜你的R.layout.main可能是空的。摆脱setContentView调用。

接下来,您拨打:

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

你试图建立一个意图通过传递这一类,它本身就是一个tabHost在标签中显示,并会尝试当它的onCreate被称为所有再次做到这一点。如果android让这种情况发生,你会创建一个无限递归调用,当内存不足时它会使手机崩溃。更有可能的情况是,我认为Android只会发生一些例外情况,或者操作系统将会破坏这个过程。

开始更简单。在您的资源中创建几个基本视图以显示在您的选项卡中。

相关问题