Regles-soft Blog

Regles-soft(リグルスソフト)のブログです。

Eclipseの名前変更の罠

表題について少々ハマったので備忘録を兼ねてここに記載しておきます。

カスタムしたビューをレイアウトXMLの中で使用している場合があるかと思います。
<com.hoge.sampleapp.CustomLinearLayout>~(中略)~</com.hoge.sampleapp.CustomLinearLayout>みたいに書くやつです。

このようなリソースはEclipseでクラス名やパッケージ名を変更しても書き換わらないという事象がありました。
一見ビルドエラーにならないので気づかないのですが、動かしてみると「ClassNotFoundException」が発生して強制終了しました。

そこでXMLの方も変更したクラス名に合わせて修正すると以後エラーが発生しなくなりました。

08-01 16:21:51.870: E/AndroidRuntime(32196): at java.lang.reflect.Method.invoke(Method.java:521)
08-01 16:21:51.870: E/AndroidRuntime(32196): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:861)
08-01 16:21:51.870: E/AndroidRuntime(32196): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:619)
08-01 16:21:51.870: E/AndroidRuntime(32196): at dalvik.system.NativeStart.main(Native Method)
08-01 16:21:51.870: E/AndroidRuntime(32196): Caused by: java.lang.ClassNotFoundException: net.regles_soft.test.CheckedLinearLayout in loader dalvik.system.PathClassLoader[/data/app/net.regles_soft.test-1.apk]
08-01 16:21:51.870: E/AndroidRuntime(32196): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
08-01 16:21:51.870: E/AndroidRuntime(32196): at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
08-01 16:21:51.870: E/AndroidRuntime(32196): at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
08-01 16:21:51.870: E/AndroidRuntime(32196): at android.view.LayoutInflater.createView(LayoutInflater.java:466)
08-01 16:21:51.870: E/AndroidRuntime(32196): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565)
08-01 16:21:51.870: E/AndroidRuntime(32196): ... 35 more


以上、参考まで。

Posted by Haseguru at PM 08:31
技術情報::Androidcomments (0)trackback (0)

ページトップ