我有一个非常奇怪的问题,对于我的生活,我无法弄清楚。我有一个即将完成的应用程序。我已经开始在不同版本的Android上测试它,并在模拟器中测试不同的屏幕尺寸/密度。一切正常,直到我进入Android 3.1和3.2(Honeycomb)。每次应用启动时,我都会收到IllegalStateException: No Activity
。我首先认为这是我的应用程序,所以我浏览了堆栈跟踪,并没有提到我的应用程序中的任何方法或类。所以我在我的应用程序支持的所有Android版本上尝试了它,它在除Honeycomb之外的每个版本都有效。我用Google搜索了Honeycomb和IllegalStateException: No Activity
但没有找到任何东西。然后我看了一下屏幕尺寸,发现Honeycomb唯一的皮肤就是WXGA。我检查了所有的drawables,我使用的是ldpi,mdpi,hdpi和xhdpi。但是,万一我把我的应用程序所需的所有drawables扔进默认的drawable文件夹,但仍然有同样的问题。我正在使用我的所有其他资源的默认文件夹,所以我知道这不是原因。然后我尝试了一个较小的屏幕尺寸,令我惊讶的是它有效。所以我在Android 4.1上测试它并使用1280x800和160的密度来模仿WXGA。它运作得很好。所以它特定于WXGA(1280x800 mdpi)和Honeycomb。我调试并逐步执行了我的代码,它实际上成功通过了onCreate()
。我认为它实际上经过了两次onCreate()
。我并未在此onResume()
中覆盖Activity
。我在谷歌的土地上花了更多的时间,但我找不到任何与我所遇到的相关的东西。以防万一这是我的onCreate()
。如果有人能够对此有所了解,我将永远为你负债。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
mResources = getResources();
mDialog = new ProgressDialog(this);
mUrl = mResources.getString(R.string.rate_url);
mEmailSubject = mResources.getString(R.string.email_subject);
mChoose = mResources.getString(R.string.email_choose);
mSendTo = mResources.getString(R.string.email_send_to);
mLoadingPlaces = mResources.getString(R.string.places_loading);
mAmazonAppStore = mResources.getString(R.string.amazon_app);
mButton1 = (Button) findViewById(R.id.tip_btn);
mButton2 = (Button) findViewById(R.id.preference);
mButton3 = (Button) findViewById(R.id.rate_btn);
mButton4 = (Button) findViewById(R.id.feedback_btn);
// Load the font and the set the font for each Button.
Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/ArchitectsDaughter.ttf");
mButton1.setTypeface(tf);
mButton2.setTypeface(tf);
mButton3.setTypeface(tf);
mButton4.setTypeface(tf);
}
答案 0 :(得分:1)
好吧,出于好奇,我回去再试一次。我要安装它并多次打开它,看看它是否有效。令我惊讶的是,它每次都有效!!!!!我一直在玩它几分钟卸载并重新安装它和它的工作。这很奇怪,因为我知道我之前在Honeycomb上测试了它并且它在过去工作过。所以我不知道这可能只是模拟器中的一个小故障,但现在看起来还不错。我只是希望我有一个具有此配置的设备来测试它。因此,如果任何人对MIGHT导致这一点有任何想法或建议,我愿意考虑每一个,以确保。