如果我启用了proguard,就无法确定任务“:app:crashlyticsStoreDeobsDebug”的依赖关系。

107

当我在Android Studio 2中运行应用程序时,遇到了以下错误:

Gradle tasks [:app:assembleDebug]
Could not determine the dependencies of task ':app:crashlyticsStoreDeobsDebug'.
> Task with path 'dexDebug' not found in project ':app'.
BUILD FAILED

这是该模块的 build.gradle 文件

buildscript {
    repositories {
        maven { url 'http://download.crashlytics.com/maven' }
        maven { url "http://dl.bintray.com/populov/maven" }
    }

    dependencies {
        classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
    }
}

apply plugin: 'com.android.application'
apply plugin: 'crashlytics'

repositories {
    maven { url 'http://download.crashlytics.com/maven' }
    maven { url "http://dl.bintray.com/populov/maven" }
    maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
}

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'

    defaultConfig {
        minSdkVersion 17
        targetSdkVersion 19
    }


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

dependencies {
    compile 'com.android.support:appcompat-v7:23.+'
    compile 'com.crashlytics.android:crashlytics:1.+'
}
如果我将minfyEnabled设置为“false”,则错误会消失。但我确实希望它启用。
这是项目级别中的build.gradle。
buildscript {
    repositories {
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0-alpha3'
    }
}

allprojects {
    repositories {
        maven { url "http://dl.bintray.com/populov/maven" }
        mavenCentral()
        jcenter()
    }
}
如果我将“2.0.0-alpha3”替换为“1.3.1”,错误也消失了。但我确实想要“2.0.0”,因为我想使用“即时运行”功能。这是gradle-wrapper.properties。
#Mon Dec 21 14:43:00 CST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip

有人知道如何修复吗?谢谢。


2
只需运行 flutter clean 并重新构建您的应用程序即可。问题出现在之前的构建被取消之前。我不需要恢复任何依赖项。 - Arpit Yadav
在构建之前,请尝试接受许可证。请查看此链接:https://dev59.com/oVQJ5IYBdhLWcg3wPTUn - Aashman Thing
18个回答

24

对我来说,构建/清理项目 + 构建/重新构建项目 + 文件/使缓存失效/重启 的完整组合方式对我很有效!


3
请分享上述代码。 - heyom
8
@heyom,那不是代码,而是Android Studio(或IntelliJ)IDE菜单中的选项。 - acdcjunior
6
@acdcjunior,你错过了这个笑话。 - m'hd semps

13

我几天前也遇到了同样的问题,找到了这个线程Twitter开发者论坛,指出gradle/build-tools/crashalics版本之间存在不兼容性。

我的问题与你略有不同,因为我没有使用alpha-3,而是使用1.5。但在更新时,我也改用了最新的gradle分发gradle-2.9-all.zip

所以,可能/也许您可以通过更改为最新的gradle版本来解决它。但如果不起作用,您真的必须耐心等待,直到build tools V2.0不再处于alpha状态或者Crashalitycs团队修复不兼容性问题。


7
我也遇到了同样的问题,我更新了Crashlytics到最新版本(截至今天是插件io.fabric.tools:gradle:1.21.2和库com.crashlytics.sdk.android:crashlytics:2.5.5),问题得到了解决。我正在使用Gradle Android插件2.0.0-alpha3(它也与1.5.0兼容)。 - BoD
2
你需要检查一下是否是因为Proguard引起的问题。你需要禁用代码混淆。 - loshkin
对我来说,在调试时禁用压缩功能是有效的,而且我仍然能够构建启用了压缩功能的生产应用程序。 - KevinTydlacka

9
我在集成Firebase Cloud Store到我的项目中时遇到了相同的问题。在项目级别gradle中,我添加了以下内容:
classpath 'com.google.gms:google-services:4.0.1'

解决了问题。

6
在Android Studio终端上运行“./gradlew assembleDebug”命令解决了我的问题。

6

你可以在项目目录中运行这个命令。它基本上只是清理构建和 gradle。

   cd android && rm -R .gradle && cd app && rm -R build

在我的情况下,我正在使用react-native,并将其作为package.json中的脚本使用。

"scripts": { "clean-android": "cd android && rm -R .gradle && cd app && rm -R build" }

5

我也遇到了同样的问题,我通过替换App级别Build.gradle文件中的依赖项来解决这个问题。

"""

implementation 'com.google.firebase:firebase-analytics:17.2.2'
implementation 'androidx.multidex:multidex:2.0.0'
testImplementation 'junit:junit:4.12'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
androidTestImplementation 'com.androidx.support.test:runner:1.1.0'
androidTestImplementation 'com.androidx.support.test.espresso:espresso-core:3.1.0'

BY

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation platform('com.google.firebase:firebase-bom:26.1.1')
implementation 'com.google.firebase:firebase-analytics'
implementation 'androidx.multidex:multidex:2.0.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.androidx.support.test:runner:1.1.0'
androidTestImplementation 'com.androidx.support.test.espresso:espresso-core:3.1.0'

这解决了我的问题。


3

使用最新版本的crashlytics来替代1.+ - 查看最新版本

 dependencies {
        classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
    }

你应该使用这种方式 -
dependencies {
            classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:2.6.8'
        }

你的问题一定会被解决。 愉快编码!


3

前往文件>设置>系统设置> Android SDK> 在SDK工具中启用Android SDK命令行工具(最新版本),然后按OK。 第一步

然后进入终端并执行以下操作:

flutter doctor --android-licenses

并接受所有许可

步骤2


3

build.gradle

allprojects {
    repositories {
        google()
        mavenLocal()
        jcenter()
        maven {
            url 'https://maven.google.com'
        }
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
    }
}

2

修复步骤:

  1. 在终端中运行flutter clean

  2. 重新运行您的应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接