在 MyApp 中扩展 MultiDexApplication class
Extend MultiDexApplication in MyApp class
首先,我试图创建扩展 MultiDexApplication 的 class 应用程序,如下所示:
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"
这是 class 创建的应用程序:
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);
这是讨论的相应方法吗?
我不认为你必须继承MultiDexApplication
。所以你有你的 App
class,你调用 MultiDex.install
,你的应用程序 class 在清单中的 <application/>
标签下(完整路径或相对路径 - 是吗没关系)。
还请确保您的应用模块的 build.gradle 文件在 android/defaultConfig 下有 multiDexEnabled true
?
PS.: manifest下指定App的典型(相对路径)方式:
<application
android:name=".App"
首先,我试图创建扩展 MultiDexApplication 的 class 应用程序,如下所示:
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"
这是 class 创建的应用程序:
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);
这是讨论的相应方法吗
我不认为你必须继承MultiDexApplication
。所以你有你的 App
class,你调用 MultiDex.install
,你的应用程序 class 在清单中的 <application/>
标签下(完整路径或相对路径 - 是吗没关系)。
还请确保您的应用模块的 build.gradle 文件在 android/defaultConfig 下有 multiDexEnabled true
?
PS.: manifest下指定App的典型(相对路径)方式:
<application
android:name=".App"