インテントのアプリを実行するとなぜか強制終了します

7,881 views
Skip to first unread message

sakurakaze...@yahoo.co.jp

unread,
Dec 21, 2011, 11:22:43 PM12/21/11
to 日本Androidの会
Androidアプリ開発の為に、現在『スマートニプログラミングAndroid入門編』という本を進めているのですが第六章にて原因不明のエラーが発
生しているので進められない状態です。

現在、インテントの項を進めているのですが、この章で作成しているアプリを実行すると、(○○は予期せず停止しました。やり直してください)というメッ
セージが出ます。

テキストの例文をそのまま写しているので文法ミスはありません。

このインテントの項では四つのアプリを作るのですが、一つ目でも同様のエラーが出ました。しかし、もう一度プロジェクトを作成し直して、構文を全てコピ
ペするとエラーは発生しませんでした。

二つ目にも同様のエラーが起こりましたので、放置して三つ目に進んだのですがここでも同様のエラーが出てしまい、どうすればいいかわからず質問いたしま
した。

logcatを調べてみると、幾つかあるうちのEの蘭の一つをクリックすると、

二つ目に作成したアプリのjavaファイル内の記述は何故か三つ目に作成したアプリの


//アイテムクリックリスナー定義

という記述にエラーがあると表示され、

三つ目はそのプロジェクトのjavaファイル内の記述の

//次のアクティビィティの起動
startActivity(intent);

というヵ所に問題があると提示されているのですが、構文も間違っていない以上手の施しようがありません。


作成しているアプリの概要ですが、2つ目のアプリは明示的インテントをテーマとしたもので、名前をテキストボックスに入力し【次へ】のボタンを押すと、
複数ある挨拶を選択するリストが現れ、それを選ぶと最初の画面に戻り、そこでトーストで「○○さんおはようございます」といったメッセージが表示される
アプリです。このアプリは、起動した瞬間にエラーが発生します。

三つ目は、暗黙的インテントをテーマとしており、三つの果物の名前のリストが最初に表示され、好きなものをクリックすると、その果物が表示された画面に
飛ぶという仕様です。この三つの果物のページと果物のリストのページとはそれぞれ独立したプロジェクトになっています。試に各果物のプロジェクトを直接
実行してみると、それは問題なく動作します。しかし、リストのプロジェクトを実行するとエラーが起こります。

tkc pub

unread,
Dec 21, 2011, 11:30:31 PM12/21/11
to android-g...@googlegroups.com

長文で説明するより
ログを貼ったほうが回答を得られやすいです。
また、「自分の文法に間違いはない」とは考えずに、「必ず自分は間違っている」と考えながら作業したほうがあとあと実になります。

--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、android-g...@googlegroups.com にメールを送信してください。
このグループから退会するには、android-group-j...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。

Katuhisa Uramoto

unread,
Dec 22, 2011, 12:00:55 AM12/22/11
to android-g...@googlegroups.com, 浦本 かな
先の方に反論するようで少し気が引けますが、
私の体験からすると、サンプルのミスが多いとおもいます。
バージョンアップの多い昨今ですから、一部仕方のないことではありますが、
著作者側の検証不足です。

もう一つ。

サンプルプロジェクトをインポートする際に、2バイト空白コードコードなどが
交じることがあります。

文字のリプレースなど実行し、目に見えないゴミが混じらないよう気をつけるのも
大切かとおもいます。



2011年12月22日13:30 tkc pub <tkc...@gmail.com>:



--
株式会社エクスファ
東京都新宿区喜久井町
03-6380-2487
代表
浦本勝久

プロトタイプ屋です。
あなたの考えや希望をカタチにします。
--

sakurakaze...@yahoo.co.jp

unread,
Dec 22, 2011, 12:09:53 AM12/22/11
to 日本Androidの会
ご指南ありがとうございます。
二つ目のアプリのログを掲載します。
ERROR/AndroidRuntime(404): FATAL EXCEPTION: main
ERROR/AndroidRuntime(404): java.lang.RuntimeException: Unable to start
activity ComponentInfo{example.android.intentsample2/
example.android.intentsample2.F irstActivity}:
java.lang.UnsupportedOperationException: addView(View, LayoutParams)
is not supported in AdapterView
ERROR/AndroidRuntime(404): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
1647)
ERROR/AndroidRuntime(404): at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:
1663)
ERROR/AndroidRuntime(404): at android.app.ActivityThread.access
$1500(ActivityThread.java:117)
ERROR/AndroidRuntime(404): at android.app.ActivityThread
$H.handleMessage(ActivityThread.java:931)
ERROR/AndroidRuntime(404): at
android.os.Handler.dispatchMessage(Handler.java:99)
ERROR/AndroidRuntime(404): at android.os.Looper.loop(Looper.java:
130)
ERROR/AndroidRuntime(404): at
android.app.ActivityThread.main(ActivityThread.java:3683)
ERROR/AndroidRuntime(404): at
java.lang.reflect.Method.invokeNative(Native Method)
ERROR/AndroidRuntime(404): at
java.lang.reflect.Method.invoke(Method.java:507)
ERROR/AndroidRuntime(404): at com.android.internal.os.ZygoteInit
$MethodAndArgsCaller.run(ZygoteInit.java: 839)
ERROR/AndroidRuntime(404): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
ERROR/AndroidRuntime(404): at
dalvik.system.NativeStart.main(Native Method)
ERROR/AndroidRuntime(404): Caused by:
java.lang.UnsupportedOperationException: addView(View, LayoutParams)
is not supported in AdapterView
ERROR/AndroidRuntime(404): at
android.widget.AdapterView.addView(AdapterView.java:461)
ERROR/AndroidRuntime(404): at
android.view.LayoutInflater.rInflate(LayoutInflater.java:627)
ERROR/AndroidRuntime(404): at
android.view.LayoutInflater.inflate(LayoutInflater.java:408)
ERROR/AndroidRuntime(404): at
android.view.LayoutInflater.inflate(LayoutInflater.java:320)
ERROR/AndroidRuntime(404): at
android.view.LayoutInflater.inflate(LayoutInflater.java:276)
ERROR/AndroidRuntime(404): at
com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.jav
a:207)
ERROR/AndroidRuntime(404): at
android.app.Activity.setContentView(Activity.java:1657)
ERROR/AndroidRuntime(404): at
example.android.intentsample2.FirstActivity.onCreate(FirstActivity.java:
23)
↑このアプリをクリックすると「//アイテムクリックリスナー定義」の行が選択される
ERROR/AndroidRuntime(404): at
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:
1047)
ERROR/AndroidRuntime(404): at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:
1611)
ERROR/AndroidRuntime(404): ... 11 more
三つ目のアプリのエラーログを掲載します。
ERROR/Zygote(32): setreuid() failed. errno: 2
ERROR/Zygote(32): setreuid() failed. errno: 17
ERROR/BatteryService(60): usbOnlinePath not found
ERROR/BatteryService(60): batteryVoltagePath not found
ERROR/BatteryService(60): batteryTemperaturePath not found
ERROR/SurfaceFlinger(60): Couldn't open /sys/power/wait_for_fb_sleep
or /sys/power/wait_for_fb_wake
ERROR/SensorService(60): couldn't open device for module sensors
(Invalid argument)
ERROR/System(60): Failure starting core service
ERROR/System(60): java.lang.SecurityException
ERROR/System(60): at android.os.BinderProxy.transact(Native
Method)
ERROR/System(60): at
android.os.ServiceManagerProxy.addService(ServiceManagerNative.java:
146)
ERROR/System(60): at
android.os.ServiceManager.addService(ServiceManager.java:72)
ERROR/System(60): at
com.android.server.ServerThread.run(SystemServer.java:207)
ERROR/EventHub(60): could not get driver version for /dev/input/
mouse0, Not a typewriter
ERROR/EventHub(60): could not get driver version for /dev/input/mice,
Not a typewriter
ERROR/SoundPool(60): error loading /system/media/audio/ui/
Effect_Tick.ogg
ERROR/SoundPool(60): error loading /system/media/audio/ui/
KeypressStandard.ogg
ERROR/SoundPool(60): error loading /system/media/audio/ui/
KeypressSpacebar.ogg
ERROR/SoundPool(60): error loading /system/media/audio/ui/
KeypressDelete.ogg
ERROR/SoundPool(60): error loading /system/media/audio/ui/
KeypressReturn.ogg
ERROR/ThrottleService(60): Could not open GPS configuration file /etc/
gps.conf
ERROR/logwrapper(151): executing /system/bin/tc failed: No such file
or directory
ERROR/logwrapper(152): executing /system/bin/tc failed: No such file
or directory
ERROR/logwrapper(153): executing /system/bin/tc failed: No such file
or directory
ERROR/AndroidRuntime(370): FATAL EXCEPTION: main
ERROR/AndroidRuntime(370): android.content.ActivityNotFoundException:
No Activity found to handle Intent { act=android.intent.action.VIEW
dat=intentsample://fruit/banana?selecteditem=Banana }
ERROR/AndroidRuntime(370): at
android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:
1 409)
ERROR/AndroidRuntime(370): at
android.app.Instrumentation.execStartActivity(Instrumentation.java:
1379)
ERROR/AndroidRuntime(370): at
android.app.Activity.startActivityForResult(Activity.java:2827)
ERROR/AndroidRuntime(370): at
android.app.Activity.startActivity(Activity.java:2933)
ERROR/AndroidRuntime(370): at
example.android.implicitintentsample1.FirstActivity
$ListItemClickListenerz. onItemClick(FirstActivity.java:55)
↑このをクリックするとjavaファイル内のstartActivity(intent);が選択された状態で表示される。
ERROR/AndroidRuntime(370): at
android.widget.AdapterView.performItemClick(AdapterView.java:284)
ERROR/AndroidRuntime(370): at
android.widget.ListView.performItemClick(ListView.java:3513)
ERROR/AndroidRuntime(370): at android.widget.AbsListView
$PerformClick.run(AbsListView.java:1812)
ERROR/AndroidRuntime(370): at
android.os.Handler.handleCallback(Handler.java:587)
ERROR/AndroidRuntime(370): at
android.os.Handler.dispatchMessage(Handler.java:92)
ERROR/AndroidRuntime(370): at android.os.Looper.loop(Looper.java:
130)
ERROR/AndroidRuntime(370): at
android.app.ActivityThread.main(ActivityThread.java:3683)
ERROR/AndroidRuntime(370): at
java.lang.reflect.Method.invokeNative(Native Method)
ERROR/AndroidRuntime(370): at
java.lang.reflect.Method.invoke(Method.java:507)
ERROR/AndroidRuntime(370): at com.android.internal.os.ZygoteInit
$MethodAndArgsCaller.run(ZygoteInit.java: 839)
ERROR/AndroidRuntime(370): at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
ERROR/AndroidRuntime(370): at
dalvik.system.NativeStart.main(Native Method)
どちらもexampleから始まる行ですが、これはアプリのパッケージ名をexample.android.○○としている為です。パッケージに何か問
題がある ようなのですが、もしわかる方がいましたらご指南お願いします。

KISAKA Toshihiro

unread,
Dec 22, 2011, 12:40:05 AM12/22/11
to android-g...@googlegroups.com
こんにちは、木坂です。

件の書籍がたまたま手元にあったので、ちょっとやってみました。
二つ目のサンプルというのは IntentSample2 というので良いでしょうか。
これを試してみましたが、特にエラーは発生しませんでした。

というわけで、

2011/12/22 sakurakaze...@yahoo.co.jp
<sakurakaze...@yahoo.co.jp>:
> テキストの例文をそのまま写しているので文法ミスはありません。

という点を疑ったほうが良いかも。

KT
--
KISAKA Toshihiro

KISAKA Toshihiro

unread,
Dec 22, 2011, 1:19:59 AM12/22/11
to android-g...@googlegroups.com
再び木坂です。

再現できないかなーとやってみました。

ERROR/AndroidRuntime(404): java.lang.RuntimeException: Unable to start

activity ComponentInfo{example.android.intentsample2/example.android.intentsample2.FirstActivity}:java.lang.UnsupportedOperationException:


addView(View, LayoutParams) is not supported in AdapterView

というあたりから考えるに、 layout の xml で LinearLayout とすべきところが ListView あたりになっていたりしませんか?

KT
--
KISAKA Toshihiro

sakurakaze...@yahoo.co.jp

unread,
Dec 23, 2011, 9:12:09 AM12/23/11
to 日本Androidの会
返信ありがとうございます。

あれから、僕も出版社が出しているサンプルプログラムとの比較などの調査をしたのですがどうしてもミスを発見できませんでした。

自分でプロジェクトファイルのみを作成し、サンプルプログラムをコピペで貼り付けたらちゃんと動作するのですが・・・(やはり僕の構文のどこかに問題が
あるのでしょう)

ここで何週間も停滞していては埒が明かないので、この章は文章のみから内容をしっかり把握し先へ進みたいと思います。

もう少しプログラムになれてきたなら、同じミスをしてもまた発見できるかもしれませんし・・・・

どうもありがとうございました。

KISAKA Toshihiro

unread,
Dec 25, 2011, 6:51:23 AM12/25/11
to android-g...@googlegroups.com
こんばんは、木坂です。

念のため、 log を載せていただいた二つ目のものに関して。

ERROR/AndroidRuntime(370): FATAL EXCEPTION: main
ERROR/AndroidRuntime(370):
android.content.ActivityNotFoundException:No Activity found to handle
Intent { act=android.intent.action.VIEW
dat=intentsample://fruit/banana?selecteditem=Banana }

って、でてますから、これは暗黙的インテントを投げたは良いけど受け取る人が誰もいなかったってことですね。
受け取る側のアプリをインストールしたのか、インストールしたのであれば manifest に intent-filter
を記述したのかを確認すればよいかと思います。

また、サンプルコードでは省略されているようですが、 startActivity(intent) は誰も受けてくれないと
ActivityNotFoundException を投げるのでその例外をちゃんと処理してやらないといけません。

KT
--
KISAKA Toshihiro

sakurakaze...@yahoo.co.jp

unread,
Dec 26, 2011, 10:23:45 AM12/26/11
to 日本Androidの会
あれから、次のアプリ(電話とブラウザと地図)を閲覧するアプリに進んだのですが、そこでも同様のエラーが発生しました。

プログラムも短いものだったので細かく見直したところ、xmlファイルに設定したボタンにidを割り当てていないにもかかわらず、javaファイルで
buttonという存在しないIDを指定しており、それがエクリプスの構文チェックで引っかかっていないという事が判りました。

それを修正したところ無事に起動しました。

そこで、前のアプリをもう一度よく確認してみたところ、

・BananaプロジェクトのマニフェストファイルにてAppleという記述があった(恐らくコピペが原因)
・アプリ実行前に全てのプロジェクトをapkファイルとして生成していない(これも原因の一つだったかは怪しいですが)

などのミスを発見し、Banana、Apple、Grapeファイルのデータそれぞれにおいては、段落や文字を書き始める位置などbanana
Apple Grapeの文字以外は全て揃えて
注意深くしてみたところ、無事に起動しました。

結局、主因がなんだったのかについてはハッキリと判りませんが、ここまでやるとバグも見つけやすくなるのだと心得ました。

実際にプログラムを再現して調査していただきありがとうございます。
また、ここに質問を投稿する事もあるかと思いますがその時はよろしくお願いいたします。

Reply all
Reply to author
Forward
0 new messages