ワニの技術メモ

エラーが出たとき、わからない技術にぶつかった時の技術メモ

103日目 NPEから抜けだして、また次のError

いろいろ試す、NullPointerException深夜の戦い。

ループ処理break;について

break文を使ってみましたが、解決できませんでした。でも、おかげでぼんやりとしか理解していなかったbreak処理について勉強できました。

まだまだ、JAVAのことよくわかっていないのでいろいろ試すヒントをいただけるだけで感謝してもしきれません。ありがとうございました。

(参考)

Java ループ処理を抜ける(break)

break文 - 処理の流れを制御 - Java入門

 

発見!NPEの原因は、、、

今日もだめだと諦めかけた時、ミスを発見!!多分これが原因???

getPakageNameとしなくてはいけないのを、

getPakageCodePathとしていました。。。。

コードを完璧に写経したと思っていたら、全然完璧ではありませんでした。

恥ずかしい。。。。

f:id:hipopocroco:20150727023303p:plain

f:id:hipopocroco:20150727023344p:plain

でも、どうして、g.drawBitmap(bmp[0], 0, 0); と、int w = bitmap.getWidth(); がErrorで指摘されたんだろう。。。確かに、Bitmap関連のコードのミスではありましたが、よく分かりません。

Genymotionで確認すると、無事絵が現れNPEも消えました。でも、、、、

新たに生まれるError

無事にプログラムが動いたと思ったら、背景や、パーツが読み込まれていなかったりずれています。もう一回いろいろ見直す必要がありそうです。夜中に作ってるから凡ミスが増えるのかな。。。それに、ミスも発見することができないのかな。。。

でも、少しでも前進してホッとしました。

それにしても、今日も夜更かし。明日娘に朝早く起こされることを思うと、、、(幸せなはずなんだけど、)辛いっ!!!

 

102日目 まだまだ続く、NPE。画像に関することが関係しているらしい。

サンプルプロジェクトを元に簡単なパズルゲームを作っています。

まずは写経して、そこから自分のやりたいように少しずつかえていこうかと思っているのですが、まず、サンプルプロジェクトが動かない。

logcatをチェックすると、Genymotionは動かず、

NullPointerException

そして、チェックしてねと指摘されるのが、Javaコードの

g.drawBitmap(bmp[0], 0, 0);     
int w = bitmap.getWidth();

Errorの波線はでていない。

 

画像を疑ってみる

現在本に載っているサンプルを写経しています。けれど、あまりにもErrorが発見できないので、付属のサンプルコードをDownloadしてチェックをすることにしました。

▼こんな感じ。

左がDownloadしたサンプルコード、右が私が作る写経中のコード

f:id:hipopocroco:20150727021046p:plain

自分で作った画像フォルダと、Downloadしたサンプル画像フォルダをいれ変えてみる。

Errorは変化なし。

ところが、

突然Downloadしたサンプルプロジェクトも動かなくなる!

そして、同じErrorが、、。

(原因)

いじっているうちにdrawable-nodbiフォルダごとごっそり移動させてしまっていた。

復元させると、、、もとどおり、Downloadしたサンプルプロジェクトが動いた。

つまり、、、

画像に何か問題があるはず!

または、

画像を操作するコードのどこかを間違えているはず??

次回、もう少し画像に関するところをチェックしてみよう!

 

↓これ、わかりやすい。

グラフィックス(6)-Bitmapの描画とMatrixの操作 - 愚鈍人

スポンサーリンク

 

101日目 NullPointerException解決できず

引き続き前回のErrorの解決方法を探し中。

結局分からない。

今日もずーっとコードを見つめていたけれど、ミスが見当たらない。

連日の猛暑。さすがに疲れぎみ。

スッキリした頭で明日もう一度コードを見つめてみよう。

とりあえず、復習用↓

dic.nicovideo.jp

100日目 @string/action_settingsのError無事消えて、また生まれる新たなError。。。

AndroidStudioで、簡単なパズルゲームをサンプルプロジェクトを元に作っています。

 

昨日まで苦しんでいた@string/action_settingsのErrorが消えました!!

皆さんありがとうございました。

まず、このError解決までの流れを残しておきます。

ログに出たError

プログラムを実行させて出たErrorがこれ!

No resource found that matches the given name(at title with value @string/action_settings),Execution failed for task' :app:processDubugResources'.

 

Error:Execution failed for task ':app:processDebugResources'.> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Users\hipopocroco\AppData\Local\Android\sdk\build-tools\22.0.1\aapt.exe'' finished with non-zero exit value 1

@string/action_settingsが問題と判断。二つ目のErrorはよく分かりませんでした。

そこで、今日やった作業はこれ↓

  1. もう一度最初から新しくプロジェクトを作りなおす。
  2. app.javaに不要なコードが残っていること発見。
  3. 訂正すると→@string/action_settingsのErrorが消える やった-!!

凡ミスです。app.javaにaction_settingsのコードが残っていました。なので、xmlファイルにErrorが発生したようです。あと、やっぱりテンプレートを間違えていたことがわかり、それも訂正したらスッキリしました。

ところが、やっぱりプログラムは動かない。

新たにログに出たError

logcatで確認すると、、、

大きく分けて2つの種類のErrorが関連してそう。

★bitmap関連のError

コードを何回も見なおしていますが、どこがErrorか分からず。波波Errorが発生しているわけではないので、もしかして作った画像に問題があるのかな。。。次回、画像を取り替えてみたいと思います。

f:id:hipopocroco:20150717011342p:plain

 

f:id:hipopocroco:20150717011404p:plain

 

★勝手に違うプロジェクトが起動しているように見える

作った覚えのないプログラムが勝手に動いているように見えます。この正体がよくわからない。次回、これがなんなのか探してみます。

f:id:hipopocroco:20150717014752p:plain

終わりに

簡単なサンプルコードのはずなのに、毎回こんなにErrorがでるなんて情けない。

でも、明日やることがわかったので今日はこれでおしまい。

 

スポンサーリンク

 

 

99日目 コードは完璧のはずなのにプログラムは動かない(xmlファイルのError[@string/action_settings])

現在サンプルプロジェクトを元にAndroidStudioでアプリを作ろうとしています。動くことが確認したら少しずつ好きなように変更して作っていこうと思っています。

xmlファイルをチェックしてErrorを探す

Genymotionを動かそうとすると、、、

「unfortunately app has stopped」

見慣れた文字になりました。

波波Errorが全て消えたと思ってこのErrorが出たときはxmlファイルがあやしい!?

xmlファイルをチェックしまくると、、、案の定ありました。

f:id:hipopocroco:20150715235712p:plain

@string/action_settingsこれがどうやら問題らしい。

これをそのまま検索かけ、上位にきた方法を試してみましたが、解決できませんでした。その記録を残しておきます。

試みたけどダメだった解決法 

【その1】

Errorが表示されている.xmlファイルそのものを削除→違うError発生

(参考)Androidアプリについて - 先日は私の質問に回答いただきありがと... - Yahoo!知恵袋

【その2】

android:title="@string/action_settings"/>を

android:title=""/>に変更

Error表示は無事消えたのですが、Genymotionは起動せず

(参考)忘れっぽい人の備忘録 【java】R.javaが自動生成されない

 

*解決できなかったのは、参考サイトが間違っているからではありません。状況が違うだけだと思っています。同じようなErrorでこのページにたどり着いた方はぜひ試してみてください。

解決のための仮説

サンプルプロジェクトを確認すると、、、私が作ったプロジェクトには余分なフォルダがたくさんあります。そこで浮上する一つの仮説。

もしかすると、

プロジェクトのテンプレートを選択する際に、ふさわしいものを選んでいなかったのでは???

  • ならば、不要と思われるものを消すべし?
  • もしくは、最初からテンプレートを選びなおして作るべし?

この2つのどちらかを試してみようと思います。とりあえず明日やることがわかったので今日はここまで。

今日の終わりに

参考にさせていただいた方法、今回はダメでしたが、状況が同じなら解決できたような気がします。これらのサイトのお陰で、無駄なフォルダやファイルが悪さしているのではないかという仮説にたどり着きました。Error続きでも明日やることがわかっているだけでちょっと気が楽です。次の手が浮かばない時が一番辛い。

スポンサーリンク

 

 

98日目「Genymotion and virtual device versions do not match」の解決策

ようやく、プログラムを全部入力し直しエミュレーターでチェックしようとしたらこの画面▼

Genymotion and virtual device versions do not match

f:id:hipopocroco:20150711011428p:plain

使えなくはないのですが、作っているプログラムは動かないので、このエラーと向き合うことにしました。そして、、、ガチャガチャ、いじっていたら解決出来ました。

 

原因

device managerをチェックしたら、、、

▼Genymotionのバージョンが低い時に作ったdeviceを使っている事がわかりました。

 

f:id:hipopocroco:20150712005018p:plain

表示されているバージョンは 2.3.0!!

現在仕様しているバージョンは2.5.0!!

現在のgenymotionと違うために表示されるErrorのようです。

 

解決方法

①バージョンが違うvirtualdeviceを削除する

▼この画面を見ただけでは分からないものですね。AndroidStudioのdevicemanagerをチェックして初めてバージョンが違っている事がわかりました)

f:id:hipopocroco:20150712005236p:plain

②新たに、使いたいvirtualdeviceを作る

(①のAddボタンを押せば▼の画面にでます)

f:id:hipopocroco:20150712005606p:plain

③もう一度、devicemanagerをチェックすると、、、

▼できた!!!

f:id:hipopocroco:20150712005744p:plain

無事アラートも消えました。

終わりに

無事にこの問題は解決しましたが、肝心のプログラムは動かず。どうやらXMLファイルに問題がありそう。次回そのエラーと向き合ってみたいと思います。 

97日目 Encordingトラブルの解決策

調子よくサンプルコードを元にプログラムを書いていたら、、、

出た。見たくない文字

warning

The project encording(windows-31j) does not match the encording specified the Gradle build files(UTF-8).

同じようなトラブルがないか検索してみました。

すると、、、あった!!!さすが、StackOverFlow

でも、また英語かぁ。。。いやいや、見つかっただけすごい!世界で同じところで悩む人に出会えるなんてすごい。ありがとうJacob&Bojan

stackoverflow.com

この解答を参考にいろいろいじってみました。

解決策

▼AndroidStudioの一番下、Gradle Sync Issueに出ました。

f:id:hipopocroco:20150707014334p:plain

▼Open File Encording Settingsを押してみるとこの画面

f:id:hipopocroco:20150707020229p:plain

どうやらこのwindows-31jのバージョンを変えれば良いらしい。

▼そこで、全部、UTF-8に変更

f:id:hipopocroco:20150707020557p:plain

▼さらにAndroidStudio右下 windows-31jUTF-8に変更

f:id:hipopocroco:20150707021132p:plain

 ▼するとこんな画面が

f:id:hipopocroco:20150707021256p:plain

しまった、、、ReloadかConvertか、どっちのボタンを押したか忘れました。適当にやってみてください。すると、どうやら成功!??違ってたらごめんなさい。

 

ちなみに、ctl+alt+s → Settings → Editor で、FileEncordings画面が出ます。

 

終わりに

StackOverFlow 質問者Jacob 回答者Bojanのおかげでなんとか解決したかのように見えますが、本当にこれでいいのかな?UTF-8の意味がイマイチ分からないままです。プログラムが動く仕組みをしっかり理解していないからわからない。時間が足らない。

それにしても、このブログ、「AndroidStudioのErrorと戦うブログ」にかえた方がいいんじゃないのか??このErrorとの戦いに時間を費やしすぎてJAVAの勉強が全然進んでいない。まずい!!!!

 

スポンサーリンク