У меня есть основное занятие, которое содержит главное меню. В этом меню есть возможность начать второе действие, которое является потомком SurfaceView
.
Я получаю эту ошибку несколько раз, но не всегда. Мне нужно выполнить процесс вызова второго действия с помощью кнопки меню первого действия, а затем вернуться к первому действию. В конце концов (обычно на 7-м повторении) ошибка происходит, когда 2-й. деятельность запускается. Без отладчика экран телефона становится черным и блокируется на 30 и более секунд, затем я вижу диалоговое окно, чтобы закрыть его. В отладчике приложение останавливается на этом исключении.
Мой файл макета для второго действия:
<?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>
У меня есть класс MySecActivity
, который загружает этот макет в конструктор.
Я понял, что получаю InflateException
на setContentView
. Я проверяю идентификатор, который передаю setContentView
, и он одинаков, но не равен нулю, при всех условиях:
int id = getResources().getIdentifier("mylayout", "layout", getPackageName());
if (id<= 0) {
id= 0; // just for debugging
} else {
try {
setContentView(id);
} catch (InflateException e) {
error = true;
}
}