4

メインメニューを保持するメインアクティビティがあります。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、このレイアウトをコンストラクターにロードします。

私は を取得していることを理解しましInflateExceptionsetContentView。私は渡す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;
    }
}
4

1 に答える 1

3

プレリュードが必要であり<?xml .. ?>、xml 名前空間を設定する必要があります。あなたはこれをやっていますか?

<?xml version="1.0" encoding="utf-8"?>
<com.myapp.MySecActivity
    xmlns:android="http://schemas.android.com/apk/res/android"
    ...

がルート要素でない場合com.myapp.MySecActivityは、レイアウト全体を貼り付けてみてください。

于 2011-03-13T23:57:02.787 に答える