【问题标题】:Android Studio Failed to resolve: multidex Open FileAndroid Studio 无法解决:multidex 打开文件
【发布时间】:2019-04-01 23:25:15
【问题描述】:

无法解决:multidex 打开文件

我在同步我的项目时发现了这个错误。

apply plugin: 'com.android.library'

android {
    compileSdkVersion rootProject.compileSdkVersion
    buildToolsVersion rootProject.buildToolsVersion

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion rootProject.targetSdkVersion
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    def system_dependencies = rootProject.ext.system_dependencies
    compile system_dependencies.appcompat_v7
    testCompile 'junit:junit:4.12'
}

我添加了这个,但它不起作用;

maven {
    url 'https://maven.google.com'
}

我尝试了很多方法。如何解决?

【问题讨论】:

  • 你的 Android Studio 和 Gradle 版本是多少?
  • 我已经解决了。

标签: android android-studio gradle resolve


【解决方案1】:

在 Android 5.0 之前添加对 Multidex 支持的依赖项。因为你的 minSdkVersion 16 所以你必须添加依赖来启用multidex。

dependencies {
  implementation 'com.android.support:multidex:1.0.3'
}

【讨论】:

    【解决方案2】:

    试试这个代码

     defaultConfig {
            applicationId "com.test"
            minSdkVersion 17
            targetSdkVersion 27
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
            // Enabling multidex support.
            multiDexEnabled true
        }
    
     dependencies {
         //Multidex support for devices prior to lollipop
         implementation 'com.android.support:multidex:1.0.1'
     }
    

    应用类

    package appUtils;
    
    import android.app.Application;
    import android.content.Context;
    import android.os.Build;
    import android.support.multidex.MultiDex;
    
    
    
    public class App extends Application {
        @Override
        public void onCreate() {
            super.onCreate();
    
        }
    
        @Override
        protected void attachBaseContext(Context base) {
            super.attachBaseContext(base);
            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) MultiDex.install(this);
        }
    }
    

    【讨论】:

      【解决方案3】:

      在项目build.gradle中

          allprojects {
          repositories {
              /**
               * This must be at the top.
               */
              maven {
                  url 'https://maven.google.com'
              }
              // Others 
              maven { url "..." }
              jcenter()
              mavenCentral()
              google()
          }
         }
      

      【讨论】:

      • 感谢您拯救了我的夜晚!相关问题的所有其他答案都说您应该将 google() 放在所有其他存储库之前,但将 maven { url 'https://maven.google.com' } 解决了问题!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-10
      • 1970-01-01
      • 1970-01-01
      • 2014-02-08
      • 2022-08-15
      • 1970-01-01
      • 2018-08-06
      相关资源
      最近更新 更多