Multidex安装失败

我正在使用CircledImageView库。 它适用于棒棒糖+ Android版本。 但在kitkat它崩溃了。 所以在谷歌搜索后。 我发现我必须在我的应用程序中实现multidex

所以这是我的应用程序类。

public class FireApp extends Application { @Override public void onCreate() { super.onCreate(); Firebase.setAndroidContext(this); Fresco.initialize (this); } @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } } 

在defaultconfig下的build.gradle中,MultiDexEnabled为true

 multiDexEnabled true 

但是当我运行应用程序时,我收到以下错误。

 java.lang.NoSuchFieldException: Field dexElementsSuppressedExceptions not found in class dalvik.system.PathClassLoader at android.support.multidex.MultiDex.findField(MultiDex.java:288) at android.support.multidex.MultiDex.access$300(MultiDex.java:57) at android.support.multidex.MultiDex$V19.install(MultiDex.java:390) at android.support.multidex.MultiDex$V19.access$000(MultiDex.java:369) at android.support.multidex.MultiDex.installSecondaryDexes(MultiDex.java:242) at android.support.multidex.MultiDex.install(MultiDex.java:161) at android.support.multidex.MultiDexApplication.attachBaseContext(MultiDexApplication.java:39) at com.buckydroid.anonchat.FireApp.attachBaseContext(Unknown Source) at android.app.Application.attach(Application.java:182) at android.app.Instrumentation.newApplication(Instrumentation.java:991) at android.app.Instrumentation.newApplication(Instrumentation.java:975) at android.app.LoadedApk.makeApplication(LoadedApk.java:511) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4564) at android.app.ActivityThread.access$1500(ActivityThread.java:139) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:149) at android.app.ActivityThread.main(ActivityThread.java:5268) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) at dalvik.system.NativeStart.main(Native Method) 

检查以下步骤

1)在build.gradle文件中添加依赖项:

 compile 'com.android.support:multidex:1.0.0' 

2)启用multidex并设置堆大小

 defaultConfig { applicationId "your package name" minSdkVersion 19 targetSdkVersion 23 versionCode 1 versionName "1.0" multiDexEnabled true } dexOptions { javaMaxHeapSize "4g" } 

3)在Application类中添加此项

 @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } 

4)在标签中的清单中添加它:

 android:name=".YourApplicationClassName" 

尝试在build.gradle文件中包含compile 'com.android.support:multidex:1.0.1'

  1. 确保清单文件中声明的应用程序扩展了MultiDexApplication
  2. 确保您的build.gradle文件启用了多索引并包含compile 'com.android.support:multidex:1.0.1'包依赖项。
  3. 确保您没有受到Android Studio快速构建的拖累。 您可以删除所有构建目录,并使用命令行使用该应用程序进行安装。
  4. 如果您的应用程序具有flavor,请确保已安装的flavor使用MultiDexApplication

试试这个在你的应用程序级别build.gradle文件中放入以下代码行

 android{ //compielsdkVersion.. //.. //.. vectorDrawables.useSupportLibrary = true } 

并在您使用CircularImageView的Activity.java中将以下静态块放在onCreate()方法的顶部,就像这样

  //... //.... static { AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); } @Override protected void onCreate(Bundle savedInstanceState) { //... //... 

之前的解决方案还可以,但缺少一些MultiDexApplication

 public class FireApp extends MultiDexApplication 

在清单中的应用程序标记中添加此行

 android:name="android.support.multidex.MultiDexApplication" 

尝试在build.gradle文件中compile 'com.android.support:multidex:1.0.1 ‘。

这是kitkat multidex中的错误,你可以覆盖V19.install,因为dexElementsSuppressedExceptions是dexPathList中的字段,而不是加载器中的字段。 但是,当dalvik执行makeDexElements时会有exception,但是您收到了错误的消息,而是在此处输入图像描述