代码之家  ›  专栏  ›  技术社区  ›  N Sharma

无法合并颤振中的dex

  •  0
  • N Sharma  · 技术社区  · 6 年前

    嗨,我在flutter中开发应用程序。当我试图建立颤振,然后我得到一个错误 Unable to merge dex .

    应用程序build.gradle

    def localProperties = new Properties()
    def localPropertiesFile = rootProject.file('local.properties')
    if (localPropertiesFile.exists()) {
        localPropertiesFile.withReader('UTF-8') { reader ->
            localProperties.load(reader)
        }
    }
    
    def flutterRoot = localProperties.getProperty('flutter.sdk')
    if (flutterRoot == null) {
        throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
    }
    
    apply plugin: 'com.android.application'
    apply plugin: 'kotlin-android'
    apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
    
    android {
        compileSdkVersion 27
    
        sourceSets {
            main.java.srcDirs += 'src/main/kotlin'
        }
    
        lintOptions {
            disable 'InvalidPackage'
        }
    
        defaultConfig {
            // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
            applicationId "com.xyz"
            minSdkVersion 16
            targetSdkVersion 27
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
    
        buildTypes {
            release {
                // TODO: Add your own signing config for the release build.
                // Signing with the debug keys for now, so `flutter run --release` works.
                signingConfig signingConfigs.debug
            }
        }
    }
    
    flutter {
        source '../..'
    }
    
    dependencies {
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.1'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
        implementation 'com.google.firebase:firebase-core:16.0.0'
    }
    
    apply plugin: 'com.google.gms.google-services'
    

    buildscript {
        ext.kotlin_version = '1.1.51'
        repositories {
            google()
            jcenter()
        }
    
        dependencies {
            classpath 'com.android.tools.build:gradle:3.0.1'
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
            classpath 'com.google.gms:google-services:4.0.0'
        }
    }
    
    allprojects {
        repositories {
            google()
            jcenter()
        }
    }
    
    rootProject.buildDir = '../build'
    subprojects {
        project.buildDir = "${rootProject.buildDir}/${project.name}"
    }
    subprojects {
        project.evaluationDependsOn(':app')
    }
    
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    

    有人知道如何解决这个问题吗?

    2 回复  |  直到 6 年前
        1
  •  3
  •   Vns Aditya    6 年前

    尝试将此添加到app build.gradle中

    android {
    defaultConfig {
       multiDexEnabled true
     }
    }
    

    classpath 'com.google.gms:google-services:4.0.0' 
    implementation 'com.google.firebase:firebase-core:16.0.0'
    

    classpath 'com.google.gms:google-services:4.0.1'
    implementation 'com.google.firebase:firebase-core:16.0.1'
    

    干净, 重建或运行flutter clean命令

        2
  •  0
  •   khairy Mohamed    6 年前

    采取以下步骤:

    1. 通过运行清理项目 flutter clean
    2. 重建使用 flutter build 或使用 flutter run .

    我希望这会有帮助。

        3
  •  0
  •   Casey Schneider    5 年前

    link 为我解决了一个非常相似的问题。

    **我不必将multidexabled设置为true

    首先,我在pubspec.yaml中将依赖项设置为

    dependencies:
      flutter:
        sdk: flutter
      cloud_firestore: ^0.8.2 
    

    然后跑 flutter packages get

    此外,我还必须更改最低目标SDK版本:

    1. 打开android/app/build.gradle,然后找到 第16版。
    2. 将该行改为minSdkVersion 21。

    仅此一项就可以解决您的问题;但是,由于某些依赖项版本不匹配,我还必须执行以下操作。

    我不得不打开 android/app/build.gradle ,然后添加以下行作为文件中的最后一行: apply plugin: 'com.google.gms.google-services'

    接下来,我必须打开 android/build.gradle ,然后在buildscript标记中添加新的依赖项:

    buildscript {
       repositories {
           // ...
       }
    
       dependencies {
           // ...
           classpath 'com.google.gms:google-services:3.2.1'   // new
       }
    }
    

    这个 link 如果你被卡住了,会有一个更完整的演练。