由于gradle文件中的错误,构建失败

时间:2019-09-15 20:15:54

标签: android firebase android-studio flutter build.gradle

我正在尝试将Firebase链接到我的Android应用并从Firestore数据库获取数据,但是即使我已更新代码,但单击运行时我在Android Studio上的Flutter应用也不会更新。我单击运行,过了一会儿它就自动停止了,应用程序没有任何变化。它反映了该代码的旧版本。

我尝试关闭模拟器并再次打开它。 我尝试关闭Android Studio并再次将其打开。 我已经阅读了关于StackOverflow的所有类似问题,但没有一个问题能准确地描述我的问题。 我尝试获取并使用所有依赖项的最新版本。

我在android / app / build-gradle中编辑的部分:

dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.google.firebase:firebase-core:17.2.0'
}

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

android / build.gradle中的依赖项:

dependencies {
    classpath 'com.android.tools.build:gradle:3.2.1'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath 'com.google.gms:google-services:4.2.0' //for the google services plugin
}

这是终端的输出:

Launching lib\main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
Running Gradle task 'assembleDebug'...
registerResGeneratingTask is deprecated, use 
registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use 
registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use 
registerGeneratedResFolders(FileCollection)
D8: Cannot fit requested classes in a single dex file (# methods: 79019 > 
65536)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task 
':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Error while 
merging dex archives:

C:\Users\user\AndroidStudioProjects\internship_day1_buttonproject\
build\app\i
ntermediates\transforms\dexBuilder\debug\0.jar, 

....(最后一行以递增的索引号重复自身,直到它  到达以下行)

C:\Users\user\AndroidStudioProjects\internship_day1_buttonproject\
build\app\i 
ntermediates\transforms\dexBuilder\debug\283.jar

The number of method references in a .dex file cannot exceed 64K.
Learn how to resolve this issue at 
https://developer.android.com/tools/building/multidex.html


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or -- 
debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 4s
Finished with error: Gradle task assembleDebug failed with exit code 1

2 个答案:

答案 0 :(得分:0)

为什么不尝试在应用中启用Multidex支持

project/app/build.gradle中添加

defaultConfig{
  ...
  multidexEnabled true
}

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

如果您迁移到androidX,请使用

dependencies{
  ...
  implementation 'androidx.multidex:multidex:2.0.1'
}

希望有帮助。

答案 1 :(得分:0)

我正在发布与我合作的内容,以防万一可能对其他人有所帮助。 试试:

    1. 在AS的右上角,单击“打开以在Android Studio中进行编辑”,然后在新窗口中打开
  1. 在其中,单击右侧栏上的“渐变”,如果在其中找不到任何文件夹,请单击大象图标。那将执行gradle任务
  2. 这会花费一些时间,并产生与Kotlin版本相关的错误。
  3. 您将转到AndroidManifest.xml并找到并删除“ $ kotlin-version”,然后将其替换为1.3.10或错误中提到的任何版本
  4. 点击“重试”
  5. 现在应出现gradle文件夹

这是gradle问题的解决方案。至于链接到Firebase,请尝试以下步骤:

  1. 当您仍在同一位置时,应显示两个gradle文件夹; android和app,单击android-> android-> Tasks-> android-> signingReport
  2. SHA1将出现在控制台中,将其复制并粘贴到Firebase的“注册应用”页面中
  3. 返回项目窗口,在应用程序级别的build.gradle中,添加两行,第一行位于此位置:
defaultConfig{
    ...
    multiDexEnabled true
}

第二行在这里:

dependencies{
    implementation 'com.android.support:multidex:1.0.3'
}
  1. 继续执行Firebase上的步骤