非法状态异常:没有活动。

3
我遇到一个很奇怪的问题,却一直无法解决。我有一个应用程序,几乎完成了。我在模拟器中开始测试不同版本的Android和不同的屏幕尺寸/密度。一切都很顺利,直到我遇到Android 3.1和3.2(Honeycomb)。每次应用程序启动时,我都会收到一个“IllegalStateException: No Activity”错误。我最初以为是我的应用程序出了问题,所以我查看了堆栈跟踪,但没有提到任何与我的应用程序相关的方法或类。因此,我尝试在我的应用程序支持的所有Android版本上运行它,并且在除Honeycomb之外的每个版本中都可以工作。我谷歌了Honeycomb和“IllegalStateException: No Activity”,但没有找到任何有关的信息。所以我又看了一下屏幕尺寸,发现Honeycomb只有WXGA皮肤。我检查了所有的可绘制对象,使用了ldpi、mdpi、hdpi和xhdpi中的一个。但为了保险起见,我将所有应用程序需要的Drawable放入默认的drawable文件夹中,但仍然遇到了同样的问题。我对其他所有资源都使用了默认文件夹,所以我知道这不是原因。然后我尝试了一个更小的屏幕尺寸,惊讶地发现它可以工作。所以我在Android 4.1上进行了测试,并使用1280x800和密度160来模拟WXGA。结果它能够正常工作。所以这是特定于WXGA(1280x800 mdpi)和Honeycomb的问题。我调试并逐步执行我的代码,并且它实际上成功地通过了onCreate()。我认为它实际上执行了两次onCreate()。我没有在这个活动中覆盖onResume()。我花了更多时间在Google上但是没有找到任何相关的信息。如果有人能够解决这个问题,我将永远感激不尽。以下是我的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);
}
1个回答

1

好吧,只是出于好奇,我又回去试了一下。我想安装它并多次打开它,看看它是否在任何时候都能工作。令我惊讶的是,它每次都能工作!!!我已经玩了几分钟,卸载和重新安装它,它仍然可以正常工作。这很奇怪,因为我知道我以前在Honeycomb上测试过它,并且它曾经工作过。所以我不知道它可能只是模拟器中的一个故障,但现在似乎没问题了。我只希望有一个具有这种配置的设备来测试它。因此,如果有人对可能导致这种情况的原因或建议有任何想法,我愿意逐个进行调查。


相关问题:https://dev59.com/gWnWa4cB1Zd3GeqPzVak#fWoFoYgBc1ULPQZFwooo。很奇怪,我尝试复制这个错误,但是我找不到任何方法。 - quinestor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接