使用 ActiveAndroid 和 MultiDexApplication

Using ActiveAndroid and MultiDexApplication

我在项目中初始化 ActiveAndroid 时遇到问题。声明清单中的应用程序标签需要像这样:

<application android:name="com.activeandroid.app.Application" ...>

不幸的是,我已经有了这个

<application android:name="android.support.multidex.MultiDexApplication">

它说您可以通过将应用程序标签中的 class 设为 ActiveAndroid 的子 class 来解决问题。

Notice also that the application name points to the ActiveAndroid application class. This step is required for ActiveAndroid to work. If you already point to a custom Application class, just make that class a subclass of com.activeandroid.app.Application.

If you are using a custom Application class, just extend com.activeandroid.app.Application instead of android.app.Application

public class MyApplication extends com.activeandroid.app.Application { ...

我有办法解决这个问题吗?我无法将代码更改为 MultiDexApplication class,因为它是 Android SDK 的一部分。

Mu​​ltiDexApplication 是 Application 子类 (MultiDexApplication),因此扩展和配置 ActiveAndroid。

public class MyApplication extends MultiDexApplication {
    @Override
    public void onCreate() {
    super.onCreate();

    Configuration config = new Configuration.Builder(this)
    .setDatabaseName("mydb.db")
    .setDatabaseVersion(1)
    .create();
    ActiveAndroid.initialize(config);
    }
}

在您的清单中,

<application android:name=".MyApplication">