0

私はメインプロジェクトを機能させて終了しました。私はライト/プロバージョンを作る方法を研究し始めました、そして今すべてが台無しになっています。私はメインプロジェクトをanAndroid Libraryと名付けましたBibleTriviaが、それを参照する他の2つのプロジェクトがとと名付けられましBibleTriviaLiteBibleTriviaPro。すべてが機能していると思いましたが、liteバージョンを実行しよClassNotFoundExceptionうとすると、最初のアクティビティであるを見つけようとすると、が表示されますSplashScreen。これSplashScreenはliteバージョンとproバージョンで同じなので、ライブラリプロジェクトにあります。

私の質問は、この構造を正しくして、この例外なしでliteバージョンとproバージョンを実行できるようにする方法です。

以下にLogCat出力とファイル構造を示しました。さらに何か必要な場合はお知らせください。

LogCat

03-09 02:10:52.745: E/AndroidRuntime(4706): FATAL EXCEPTION: main
03-09 02:10:52.745: E/AndroidRuntime(4706): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{matt.lyons.bibletrivia.lite/matt.lyons.bibletrivia.lite.SplashScreen}: java.lang.ClassNotFoundException: Didn't find class "matt.lyons.bibletrivia.lite.SplashScreen" on path: /data/app/matt.lyons.bibletrivia.lite-1.apk
03-09 02:10:52.745: E/AndroidRuntime(4706):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106)
03-09 02:10:52.745: E/AndroidRuntime(4706):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
03-09 02:10:52.745: E/AndroidRuntime(4706):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
03-09 02:10:52.745: E/AndroidRuntime(4706):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
03-09 02:10:52.745: E/AndroidRuntime(4706):     at android.os.Handler.dispatchMessage(Handler.java:99)
03-09 02:10:52.745: E/AndroidRuntime(4706):     at android.os.Looper.loop(Looper.java:137)
03-09 02:10:52.745: E/AndroidRuntime(4706):     at android.app.ActivityThread.main(ActivityThread.java:5039)
03-09 02:10:52.745: E/AndroidRuntime(4706):     at java.lang.reflect.Method.invokeNative(Native Method)
03-09 02:10:52.745: E/AndroidRuntime(4706):     at java.lang.reflect.Method.invoke(Method.java:511)
03-09 02:10:52.745: E/AndroidRuntime(4706):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
03-09 02:10:52.745: E/AndroidRuntime(4706):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
03-09 02:10:52.745: E/AndroidRuntime(4706):     at dalvik.system.NativeStart.main(Native Method)
03-09 02:10:52.745: E/AndroidRuntime(4706): Caused by: java.lang.ClassNotFoundException: Didn't find class "matt.lyons.bibletrivia.lite.SplashScreen" on path: /data/app/matt.lyons.bibletrivia.lite-1.apk
03-09 02:10:52.745: E/AndroidRuntime(4706):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
03-09 02:10:52.745: E/AndroidRuntime(4706):     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
03-09 02:10:52.745: E/AndroidRuntime(4706):     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
03-09 02:10:52.745: E/AndroidRuntime(4706):     at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
03-09 02:10:52.745: E/AndroidRuntime(4706):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
03-09 02:10:52.745: E/AndroidRuntime(4706):     ... 11 more

ここに画像の説明を入力してください

編集

これが私のライトの始まりAndroidManifestです。はSplashScreenアクティビティについてLogCat言っClassNotFoundExceptionているので、以下のマニフェストを読み取っていますが、SplashScreenランチャーアクティビティを見つけることができません。

<manifest 
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="matt.lyons.bibletrivia.lite"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

    <application
        android:icon="@drawable/icon_lite"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".SplashScreen"
            android:screenOrientation="portrait" >
            <intent-filter>
                <action
                    android:name="android.intent.action.MAIN" />
                <category
                    android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity 
            android:name="com.google.ads.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
        <activity
            android:label="@string/app_name"
            android:name=".About"
            android:screenOrientation="portrait" />
    ...
    ...more activities...
    ...
</manifest>
4

1 に答える 1

1

元の郵便が示唆したように、問題が修正されたため、コメントに回答がありました。

投稿した画像では、 SplashScreen Activity クラスがパッケージmatt.lyons.bibletriviaにあることがわかります。この情報とマニフェスト ファイルを使用すると、次のように結論付けることができます。

  1. デフォルトのパッケージをmatt.lyons.bibletrivia.liteとして定義し、マニフェスト ファイルのpackage属性に定義しています

  2. アクティビティをandroid:name=".SplashScreen"として定義しているため、SplashScreen アクティビティをデフォルト パッケージにあるかのように定義しています。これにより、存在しないクラス matt.lyons.bibletrivite.lite.SplashScreen が検索されます。

問題を解決するには、SplashScreen アクティビティを完全なクラス名で定義する必要があります。つまり、次のことを意味します。

android:name=".SplashScreen" 

で代用する必要があります

android:name="matt.lyons.bibletrivite.SplashScreen"

そして、すべてがうまくいくはずです。

于 2013-03-13T15:52:34.317 に答える