私は非常に奇妙な問題を抱えており、私の人生では理解できません。ほぼ完成したアプリがあります。Android のさまざまなバージョンと、エミュレーターのさまざまな画面サイズ/密度でテストを開始しました。Android 3.1 および 3.2 (Honeycomb) に到達するまで、すべてが正常に機能していました。IllegalStateException: No Activity
アプリが起動するたびに取得します。最初は自分のアプリだと思ったので、スタック トレースを調べましたが、アプリのメソッドやクラスについて言及されていませんでした。そのため、アプリでサポートされているすべての Android バージョンで試してみたところ、Honeycomb を除くすべてのバージョンで機能しました。私はハニカムをグーグルで検索し、IllegalStateException: No Activity
何も見つかりませんでした。そこで、画面サイズを調べたところ、ハニカムのスキンは WXGA しかないことに気付きました。すべてのドローアブルをチェックしましたが、ldpi、mdpi、hdpi、および xhdpi に 1 つ使用しています。しかし、念のため、アプリが必要とするすべてのドローアブルをデフォルトのドローアブル フォルダーに入れても、同じ問題が発生しました。他のすべてのリソースに既定のフォルダーを使用しているので、それが原因ではないことがわかっています。次に、小さい画面サイズを試してみたところ、驚いたことにうまくいきました。そこで、Android 4.1 でテストし、1280x800 と 160 の密度を使用して WXGA を模倣しました。そして、それはうまくいきました。そのため、WXGA(1280x800 mdpi) と Honeycomb に固有です。コードをデバッグしてステップ実行したところ、実際に正常に実行されましたonCreate()
。onCreate()
実際には2回通過したと思います。私はこれをオーバーライドonResume()
していませんActivity
. 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);
}