前回のエラー対処Androidアプリ開発、今日のエラーまとめ(1)ー(6)分、2003年9月22日〜11月7日
内容
7 今日のエラーAndroidアプリ開発
アンドロイドアプリを作っていて、何回か同じようなプロジェクトを作成していると同じような設定をしなければならない箇所がでてきます。設定したと思っていたら、設定していなくてデバッガーに何が悪いのかが表示されないことが多々あり、そのとき、5分、10分とエラーと格闘します。すぐに分かるものならばよいのですが、エラーの対処に戸惑って、1日2日とムダにすることがあります。それを避けるためにエラー対処記録を取るようにしました。
(1)原因はmanifest.xmlの記述ミス
ほぼ同じコードを使用したプロジェクトなのにアプリが起動しない原因はmanifest.xmlの記述ミスが多い。
ほぼ同じ内容のアプリを作ろうとしてプロジェクトのコードを見ながらコピペで別途新規プロジェクトを作成してコード作業をしました。
そして実行してみると、intentを使用したところでエラーとなりました。いろいろとコードをチェックしましたが、コピペ不足のところはなし。はてなと思ってぐーぐるで探してみるとmanifest.xmlがどうのこうのとあり、オリジナルのプロジェクトをチェックするとクラス名の記載が違う。わかりました。
原因:manifest.xmlの記述ミス インテントするクラス名の記載ミス
のmyClsssを
MyClass
として記載していました。
正しくは、myClassです。myClass.javaとして作成しましたので。
クラス作成の時に、大文字小文字を意識せずに記載して、manifest.xmlをコピペしていました。
(2)意味不明な起動エラー、久しぶりにプログラムをしようとするとこうなる典型的エラー
2013/12/23
約3週間ぶりに、アンドロイドアプリのプロジェクトをデバッグすると、起動せずエラーが表示。InisitialScene.javaにも到達していない。
プロパティを見ると、Build PATHにandroid4.3のチェックが入っていなかったので、チェックを入れました。
しかし、変わらず。
Manifest.xmlに一箇所違うところがあって、次のように修正
android:theme=”@android:style/Theme.NoTitleBar”
しかし、エラーは変わらず。
エラー原因判明かと思ったら、他にもエラーが
何処が悪いのかJAVAファイルをそれぞれ比較すると
MainActivity.javaが完全にコピーしきれていない。
これですね。
動かないはずです。完全に動くコードを書いていないのです。
全部写しきったと思っていたら、まだだったみたいです。
これでは動きません。
早速MainActivity.javaを以前のバージョンを参考に清書します。
続き、
ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 2211
というところで、やっぱりエラーです。
グーグルで見ると、なにやら、manifest.xml がおかしいような記載が見つかりました。
そこで、また過去のPJと比較すると
android:configChanges=”orientation|keyboardHidden”
が抜けていました。
しかし、エラー。
ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 2211
同じところです。
一旦、クリーンしてみる。
やっぱりダメだったので、諦めて再度別PJを作成しました。
しかし、またここで
Choreographer.doCallbacks(int, long) line: 572
というエラーです。
MainActivity.javaの
以下をコメントにしました。これは使用しないのに記載していました。
[c]
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
[/c]