1

Pardom から ActiveAndroid データベース パッケージを実装しようとしています。簡単なカスタム クラスを作成しました。

package com.xxx.xxxx;

import com.activeandroid.ActiveAndroid;

public class CardiologyApplication extends com.activeandroid.app.Application {
    @Override
    public void onCreate() {
        super.onCreate();
        ActiveAndroid.initialize(this);
    }

    @Override
    public void onTerminate() {
        super.onTerminate();
        ActiveAndroid.dispose();
    }

}

そして、マニフェストに次を追加しました。

 <application
        android:name="com.xxx.xxxx.CardiologyApplication"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.MyTheme" >
        <meta-data
            android:name="AA_DB_NAME"
            android:value="Cardiology2.db" />
        <meta-data
            android:name="AA_DB_VERSION"
            android:value="1" />

        <activity
            android:name="com.xxx.xxxx.HomeActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="stateHidden|adjustResize" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

しかし、アプリは次のスタック トレースでクラッシュします。

07-09 19:08:37.019: E/AndroidRuntime(11494): FATAL EXCEPTION: main
07-09 19:08:37.019: E/AndroidRuntime(11494): java.lang.RuntimeException: Unable to instantiate application com.xxx.xxx.CardiologyApplication: java.lang.ClassNotFoundException: Didn't find class "com.xxx.xxxx.CardiologyApplication" on path: DexPathList[[zip file "/data/app/com.xxx.xxxx-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.mycqs.cardiologymcqs-2, /vendor/lib, /system/lib]]
07-09 19:08:37.019: E/AndroidRuntime(11494):    at android.app.LoadedApk.makeApplication(LoadedApk.java:509)
07-09 19:08:37.019: E/AndroidRuntime(11494):    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4605)
07-09 19:08:37.019: E/AndroidRuntime(11494):    at android.app.ActivityThread.access$1400(ActivityThread.java:154)
07-09 19:08:37.019: E/AndroidRuntime(11494):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1366)
07-09 19:08:37.019: E/AndroidRuntime(11494):    at android.os.Handler.dispatchMessage(Handler.java:99)
07-09 19:08:37.019: E/AndroidRuntime(11494):    at android.os.Looper.loop(Looper.java:137)
07-09 19:08:37.019: E/AndroidRuntime(11494):    at android.app.ActivityThread.main(ActivityThread.java:5368)
07-09 19:08:37.019: E/AndroidRuntime(11494):    at java.lang.reflect.Method.invokeNative(Native Method)
07-09 19:08:37.019: E/AndroidRuntime(11494):    at java.lang.reflect.Method.invoke(Method.java:525)
07-09 19:08:37.019: E/AndroidRuntime(11494):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
07-09 19:08:37.019: E/AndroidRuntime(11494):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
07-09 19:08:37.019: E/AndroidRuntime(11494):    at dalvik.system.NativeStart.main(Native Method)
07-09 19:08:37.019: E/AndroidRuntime(11494): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.xxx.xxxx.CardiologyApplication" on path: DexPathList[[zip file "/data/app/com.xxx.xxxx-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.xxx.xxxx-2, /vendor/lib, /system/lib]]
07-09 19:08:37.019: E/AndroidRuntime(11494):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
07-09 19:08:37.019: E/AndroidRuntime(11494):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
07-09 19:08:37.019: E/AndroidRuntime(11494):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
07-09 19:08:37.019: E/AndroidRuntime(11494):    at android.app.Instrumentation.newApplication(Instrumentation.java:992)
07-09 19:08:37.019: E/AndroidRuntime(11494):    at android.app.LoadedApk.makeApplication(LoadedApk.java:504)
07-09 19:08:37.019: E/AndroidRuntime(11494):    ... 11 more

ここで何が問題なのかわかりません。Java ビルド パスに .jar ファイルを追加しました。それでも、このclassnotfound例外が発生しています。android.app.Application をインポートすると、アプリが読み込まれます。

4

1 に答える 1

3

わかりました。答えがわかりました。ダウンロードした ActiveAndroid .jarをコピーしてlibs/フォルダーに配置します。

次に、Eclipse でlibsフォルダーを開き、その.jarを右クリックしてビルド パスに追加します。

ソース

于 2013-08-17T21:00:28.323 に答える