Android特殊报错解决系列

2017-7-20 刘晓飞 技术

出错信息如下
Error:A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_WebDebugApkCopy'.
   > Could not find com.android.support:multidex:.
     Required by:
         project :app

原因和解决办法

设置您的应用程序项目以使用multidex配置要求您对应用程序项目进行以下修改,具体取决于您的应用程序支持的最低Android版本。

如果您的minSdkVersion设置为21或更高版本,则您需要做的就是在模块级build.gradle文件中将multiDexEnabled设置为true,如下所示:

android { defaultConfig { ... minSdkVersion 21 targetSdkVersion 26 multiDexEnabled true } ... }

但是,如果您的minSdkVersion设置为20或更低,则必须使用multidex支持库,如下所示:

  • 修改模块级build.gradle文件以启用multidex,并将multidex库添加为依赖关系,如下所示:

    android { defaultConfig { ... minSdkVersion 15 targetSdkVersion 26 multiDexEnabled true } ... } dependencies { compile 'com.android.support:multidex:1.0.1' }

根据是否覆盖Application类,请执行以下操作之一:

  • 如果您不覆盖Application类,请编辑您的清单文件,以在标记中设置android:name,如下所示:

    <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapp"> <application android:name="android.support.multidex.MultiDexApplication" > ... </application> </manifest>
  • 如果您重写Application类,请将其更改为扩展MultiDexApplication(如果可能),如下所示:

    public class MyApplication extends MultiDexApplication { ... }
  • 或者如果您重写了Application类,但是不可能更改基类,那么可以重写attachBaseContext()方法并调用MultiDex.install(this)来启用multidex:

    public class MyApplication extends SomeOtherApplication { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } }

标签: Android

发表评论:

鲁ICP备16034487号