メインメニューを保持するメインアクティビティがあります。SurfaceView
このメニューには、子孫である 2 番目のアクティビティを開始するオプションがあります。
このエラーが数回発生しますが、常にではありません。最初のアクティビティのメニュー ボタンを介して 2 番目のアクティビティを呼び出し、最初のアクティビティに戻るプロセスを実行する必要があります。最終的に(通常は7回目の繰り返しで)、2回目のときにエラーが発生します。活動を開始しています。デバッガーがないと、電話の画面が黒くなり、約 30 秒以上ブロックされてから、閉じるダイアログが表示されます。デバッガーでは、アプリはこの例外で停止します。
2 番目のアクティビティのレイアウト ファイルは次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.myapp.MySecActivity
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:id="@+id/sec_view"/>
</FrameLayout>
Class がありMySecActivity
、このレイアウトをコンストラクターにロードします。
私は を取得していることを理解しましInflateException
たsetContentView
。私は渡すIDをチェックしてsetContentView
いますが、それはすべての条件で同じで、nullではありません:
int id = getResources().getIdentifier("mylayout", "layout", getPackageName());
if (id<= 0) {
id= 0; // just for debugging
} else {
try {
setContentView(id);
} catch (InflateException e) {
error = true;
}
}