首先,我正在尝试创建扩展MultiDexApplication的App类,如下所示:
public class App extends MultiDexApplication {
private static Application application;
public static Application getApplication() {
return application;
}
public static Context getContext() {
return getApplication().getApplicationContext();
}
@Override
public void onCreate() {
super.onCreate();
application = this;
}
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(getContext());
}
}
但是我收到一条消息建议:
The <application> com.packageName.App is not registered in the manifest less... (Ctrl+F1)
文档对此一无所知。
那么,如果它已经写了名字,我该如何在清单上注册它?
<application
android:name="android.support.multidex.MultiDexApplication"
...
通过this docs,我只是停止使用给定的命名应用程序并使用:android:name=".App"
这是App创建的类:
public class App extends Application {
private static Application application;
public static Application getApplication() {
return application;
}
public static Context getContext() {
return getApplication().getApplicationContext();
}
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
application = this;
MultiDex.install(getContext());
}
}
请注意,我在onCreate上致电MultiDex.install(this);
这是here讨论的相应方法吗?
答案 0 :(得分:1)
我认为您不必继承MultiDexApplication
。因此,您拥有App
类,调用了MultiDex.install
,清单中<application/>
标签下的应用程序类(完整路径或相对路径-无关紧要)。
还请确保您的应用模块的build.gradle文件在android / defaultConfig下具有multiDexEnabled true
吗?
PS .:在清单:
下指定App的典型(相对路径)方法
<application
android:name=".App"