2011-10-10 11 views
2

私は次のマニフェスト(スニペット)があります。私はこれを起動したとき、私は次のエラーを取得する、AndroidManifest.xmlには相対的なパッケージ名がありますか?

<?xml version="1.0" encoding="utf-8"?> 
<manifest 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:versionCode="1" 
    android:versionName="1.0" 
    package="com.uniquename.appname"> 

    <application 
     android:icon="@drawable/ic_launcher_icon" 
     android:label="@string/app_name" 
     android:name=".activity.MainApplication"> 
    .... 

MainApplication.java生活com.uniquename.appname.activity

ではまだありません:

私を打つ

10-10 23:12:33.327: ERROR/AndroidRuntime(7783): java.lang.RuntimeException: Unable to instantiate application com.uniquename.appname.MainApplication: java.lang.ClassNotFoundException: com.uniquename.appname.MainApplication in loader dalvik.system.PathClassLoader[/system/framework/android.test.runner.jar:/data/app/com.uniquename.appname-1.apk]

私が明示的にそれをアクティビティサブパッケージを見るように尋ねたので、奇妙なものとして。私はこの相対的なテクニックを使って他の人の例を見てきましたが、それは私のために働いていません。私の宣言に何が間違っていますか?ありがとう!

答えて

3

ダングは、あなたがそれを理解しようとする時間を費やし、最終的にあきらめてコミュニティに尋ね、その後2秒後に答えを発見する場合があります。私の場合、答えは、はい、manifest.xmlファイルで相対パスを使用することが可能です。私の問題は、xmlファイルのいくつかのカスタムパッケージ名を更新するのを忘れていたことを除いて、うまく機能していた大規模なリファクタリングの練習に由来していました( 'Java以外のファイルの完全修飾パッケージ名を更新すると助けになりました!

とにかく、これらのパッケージの参照が古くなったため、実行時にエラーが発生しました。残念ながら、あなたが受け取るエラーメッセージは誤解を招き、私のマニフェスト宣言とは全く関係がありませんでした。私のマニフェストに触れずに、自分のXMLファイル内のパッケージ名を修正することで、私の問題を解決しました。これがいつか誰かを助けることを願っています。

関連する問題