我想添加融合的位置服务,但它告诉我一些错误。 帮助我。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "27.0.1"
    defaultConfig {
        applicationId "com.example.adil.bloodbankapplication"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:26.1.0'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.google.firebase:firebase-auth:11.8.0'
    compile 'com.google.firebase:firebase-database:11.8.0'
    compile 'com.android.support:support-v4:26.1.0'
    compile 'junit:junit:4.12'
    compile 'com.android.support:design:26.1.0'
    compile 'com.github.joielechong:countrycodepicker:2.1.5'
    compile 'com.jaredrummler:material-spinner:1.2.4'
    compile 'hanks.xyz:htextview-library:0.1.5'
    compile 'com.firebaseui:firebase-ui-database:1.2.0'
    compile 'com.google.android.gms:play-services:11.8.0'
}


apply plugin: 'com.google.gms.google-services'

当前回答

使用multidex支持应该是最后的手段。默认情况下,gradle构建会为你的APK收集大量的可传递依赖项。正如谷歌开发者文档中建议的那样,首先尝试从项目中删除不必要的依赖项。

使用命令行导航到Android项目根目录。 您可以获得如下所示的编译依赖项树。

gradlew app:dependencies --configuration debugCompileClasspath

你可以得到完整的依赖树列表

gradlew app:dependencies

然后从应用build.gradle中删除不必要的或可传递的依赖项。作为一个例子,如果你的应用程序使用名为“com.google的依赖。你可以排除你不需要的库/模块。

implementation ('com.google.api-client:google-api-client-android:1.28.0'){
   exclude group: 'org.apache.httpcomponents'
   exclude group: 'com.google.guava'
   exclude group: 'com.fasterxml.jackson.core'
   }

然后在Android Studio中选择Build > Analyze APK… 选择发布/调试APK文件以查看内容。这将为您提供如下所示的方法和引用计数。

其他回答

Goto构建。Gradle的应用程序文件夹, 设置minSdkVersion为21

保存并运行您的应用程序,它应该没有dex错误现在运行

我用这种方法解决了我同样的问题,你需要遵循2个简单的步骤。我是AndroidX用户,所以对我来说,首先我在构建中实现了这个依赖。Gradle文件在我的项目中的依赖项部分。

实现“androidx.multidex: multidex: 2.0.1”

dependencies {
//for multidex
implementation 'androidx.multidex:multidex:2.0.1'

}

在构建中添加此依赖项后。Gradle文件,然后再次同步您的项目

现在添加到“defaultConfig”部分:

multiDexEnabled真实

defaultConfig {
    applicationId "com.papel.helper"
    minSdkVersion 16
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

    multiDexEnabled true
  
}

现在重新构建你的项目并运行:)

multiDexEnabled true

请尝试将此添加到您的应用程序defaultConfig{}。这帮我解决了问题

我为我的项目找到了这个解决方案 我只是将最低SDK版本设置为21,这就解决了我的问题

android {
    defaultConfig {
        ...
        minSdkVersion 21 //set the minimum sdk version 21
        targetSdkVersion 29
    }
    ...
}

如果您的minSdkVersion为21或更高,则默认启用multidex,并且您不需要multidex支持库。 阅读更多关于multidex https://developer.android.com/studio/build/multidex.html

这将为Kotlin或Java项目完成工作。

步骤1 -在Gradle Scripts下找到build.gradle(Module:app)

步骤2 -添加multiDexEnabled true如下所示:

    compileSdkVersion 29

    defaultConfig {
        applicationId "com.example.appname"
        minSdkVersion 19
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        multiDexEnabled true //addded
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

步骤3 -添加multidex依赖项

dependencies {
implementation 'com.android.support:multidex:2.0.0' //added
}

最后,同步你的项目。享受吧!