こんにちはfkmです。
リソースのビルドが中途半端になっているように見えるので、
EclipseのProject -> cleanをやったあと実行してみてください。
Eclipseのクリーン起動(eclipse -clean)とは別です。
2014-03-28 13:40 GMT+09:00 K K <
roba...@gmail.com>:
> 初めて質問させていただきます。
> Javaも、アプリの制作も初めてなので、的外れなことをしているかもしれませんが、よろしくお願いします。
>
> 脱出ゲームを作っておりまして、最初から最後までプレイできる状況まできたのですが、
> 実機がスリープ状態になった時、通常ですと、スリープから抜けたとき、再度アプリの画面が表示されると思うのですが、
> スリープになった時点で、エラーがでて、アプリが強制終了してしまいます。
>
>
> [エラーの発生手順]
> (1)Eclipseから、USB経由で、実機でアプリを起動
> (2)何もインクルードしていないActivity(タイトル画面)で待機
> (3)画面が黒くなって、スリープ状態になる
> この状態で出されたエラー
>
> 03-28 12:15:01.119: E/ViewRootImpl(20971): sendUserActionEvent() mView ==
> null
>
> (4)スマホのボタンを押して、スリープから抜ける。タイトル画面が表示される。
>
> 03-28 12:16:19.426: D/dalvikvm(20971): GC_FOR_ALLOC freed 1314K, 20% free
> 27424K/34176K, paused 18ms, total 18ms
> 03-28 12:16:19.466: E/ViewRootImpl(20971): sendUserActionEvent() mView ==
> null
> 03-28 12:16:19.486: E/ViewRootImpl(20971): sendUserActionEvent() mView ==
> null
>
> (5)インクルードしているActivityへIntentで画面遷移
> (6)同様に、待機して画面が暗くなる。
> (7)更に待機して、画面が黒くなって、スリープ状態になる。
>
> (一部抜粋)
> 03-28 12:17:07.162: E/AndroidRuntime(20971): Caused by:
> android.content.res.Resources$NotFoundException: Resource ID #0x7f030008
> 03-28 12:17:07.162: E/AndroidRuntime(20971): at
> android.content.res.Resources.getValue(Resources.java:1981)
> 03-28 12:17:07.162: E/AndroidRuntime(20971): at
> android.content.res.Resources.loadXmlResourceParser(Resources.java:3187)
> 03-28 12:17:07.162: E/AndroidRuntime(20971): at
> android.content.res.Resources.getLayout(Resources.java:1797)
> 03-28 12:17:07.162: E/AndroidRuntime(20971): at
> android.view.LayoutInflater.parseInclude(LayoutInflater.java:805)
> 03-28 12:17:07.162: E/AndroidRuntime(20971): at
> android.view.LayoutInflater.rInflate(LayoutInflater.java:751)
> 03-28 12:17:07.162: E/AndroidRuntime(20971): at
> android.view.LayoutInflater.rInflate(LayoutInflater.java:769)
> 03-28 12:17:07.162: E/AndroidRuntime(20971): at
> android.view.LayoutInflater.rInflate(LayoutInflater.java:769)
> 03-28 12:17:07.162: E/AndroidRuntime(20971): at
> android.view.LayoutInflater.inflate(LayoutInflater.java:498)
> 03-28 12:17:07.162: E/AndroidRuntime(20971): at
> android.view.LayoutInflater.inflate(LayoutInflater.java:398)
> 03-28 12:17:07.162: E/AndroidRuntime(20971): at
> android.view.LayoutInflater.inflate(LayoutInflater.java:354)
> 03-28 12:17:07.162: E/AndroidRuntime(20971): at
> com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:361)
> 03-28 12:17:07.162: E/AndroidRuntime(20971): at
> android.app.Activity.setContentView(Activity.java:1956)
> 03-28 12:17:07.162: E/AndroidRuntime(20971): at
> パッケージ.GameActivity.onCreate(GameActivity.java:55)
> 03-28 12:17:07.162: E/AndroidRuntime(20971): at
> android.app.Activity.performCreate(Activity.java:5372)
> 03-28 12:17:07.162: E/AndroidRuntime(20971): at
> android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
> 03-28 12:17:07.162: E/AndroidRuntime(20971): at
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257)
> 03-28 12:17:07.162: E/AndroidRuntime(20971): ... 12 more
> 03-28 12:17:07.232: I/Process(20971): Sending signal. PID: 20971 SIG: 9
>
> この行をクリックすると
> 03-28 12:17:07.162: E/AndroidRuntime(20971): at
> パッケージ.GameActivity.onCreate(GameActivity.java:55)
>
> ここの setContentView() がハイライトされます。
> public class GameActivity extends Activity {
> @Override
> protected void onCreate(Bundle savedInstanceState) {
> super.onCreate(savedInstanceState);
> // タイトルを非表示にする
> requestWindowFeature(Window.FEATURE_NO_TITLE);
>
> // フルスクリーン表示する
> getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
> setContentView(R.layout.activity_game); //ハイライトされる箇所
> (以下省略)
> }
> }
>
> このactivity_game.xmlのなかに、Resource ID #0x7f030008 となる itemlist.xml
> がインクルードされています。
> (activity_game.xml 該当箇所)
>
> <include layout="@layout/itemlist" />
>
> (R.java 該当箇所)
>
> public static final class layout {
> public static final int about=0x7f030000;
> (省略)
> public static final int itemlist=0x7f030008;
> (以下省略)
> }
>
> [試したこと]
> Eclipseを、クリーンアップで起動してみましたが、状況は変わりませんでした。
> itemlist.xml をインクルードするのをやめてみたところ、今度は about=0x7f030000 で、同様のエラーがでました。
> about.xml は getLayoutInflater().inflate() を使っています。
>
> (該当箇所java)
> //フレームの取得
> aboutFrame = (FrameLayout)activity.findViewById(R.id.about_frame);
> //フレームにaboutXMLをはめこむ
> activity.getLayoutInflater().inflate(R.layout.about, aboutFrame);
> (該当箇所xml)
> <FrameLayout
> android:id="@+id/about_frame"
> android:layout_width="wrap_content"
> android:layout_height="wrap_content" />
> インクルードしたレイアウトxmlが、スリープ状態になった時点で認識できなくなっているようなのですが、
> Activityのライフサイクル、たとえばonStop()などで、なにか特別な処理をしなければいけないのでしょうか?
> 長文で読みづらくなり、申し訳ございません。
> よろしくお願い致します。
>
> --
> このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
> このグループから退会し、グループからのメールの配信を停止するには
>
android-group-j...@googlegroups.com にメールを送信してください。
> このグループに投稿するには
android-g...@googlegroups.com にメールを送信してください。
>
http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
> その他のオプションについては
https://groups.google.com/d/optout にアクセスしてください。
--
-------------------------------------------------------------
深見 浩和(Hirokazu Fukami)
URI:
http://www.fkmsoft.jp
email:
f...@fkmsoft.jp