使用Android Studio时遇到Crashlytics构建错误

9
我会尽力为您进行翻译。以下是需要翻译的内容:

我想在Android Studio和gradle中使用CrashLytics,但是我遇到了一个令人困惑的错误java.lang.NoSuchMethodError:

我的build.gradle文件如下:

buildscript {
    repositories {
        mavenCentral()
        maven { url 'http://download.crashlytics.com/maven' }

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

apply plugin: 'android'
apply plugin: 'crashlytics'

repositories {
    mavenCentral()
    maven { url 'http://download.crashlytics.com/maven' }
}

android {
    buildToolsVersion "18.0.1"
    compileSdkVersion 18

    //...
}


dependencies {
    compile 'com.android.support:appcompat-v7:18.0.+'
    compile 'com.google.android.gms:play-services:3.2.25'

    compile 'com.crashlytics.android:crashlytics:1.+'
    //compile 'com.newrelic.agent.android:android-agent:2.426.0'

}

尝试执行$ gradle assembleDebug时:
Relying on packaging to define the extension of the main artifact has been deprecated and is scheduled to be removed in Gradle 2.0
:preBuild UP-TO-DATE
:preDebugBuild UP-TO-DATE
:preReleaseBuild UP-TO-DATE
:prepareComAndroidSupportAppcompatV71800Library UP-TO-DATE
:prepareComGoogleAndroidGmsPlayServices3225Library UP-TO-DATE
:prepareDebugDependencies
:compileDebugAidl UP-TO-DATE
:compileDebugRenderscript UP-TO-DATE
:generateDebugBuildConfig UP-TO-DATE
:processDebugManifest UP-TO-DATE
:crashlyticsCleanupResourcesDebug
:crashlyticsUploadStoredDeobsDebug
:crashlyticsGenerateResourcesDebug
:mergeDebugAssets UP-TO-DATE
:mergeDebugResources FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':mergeDebugResources'.
> Could not call IncrementalTask.taskAction() on task ':mergeDebugResources'

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':mergeDebugResources'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:283)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
    at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$1.run(DefaultTaskPlanExecutor.java:33)
    at org.gradle.internal.Factories$1.create(Factories.java:22)
    at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:214)
    at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:276)
    at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:142)
    at org.gradle.api.internal.changedetection.state.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:78)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:31)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:86)
    at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
    at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
    at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
    at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:166)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113)
    at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
    at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
    at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50)
    at org.gradle.api.internal.Actions$RunnableActionAdapter.execute(Actions.java:171)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:201)
    at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:174)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170)
    at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
    at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
    at org.gradle.launcher.Main.doAction(Main.java:46)
    at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
    at org.gradle.launcher.Main.main(Main.java:37)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50)
    at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32)
    at org.gradle.launcher.GradleMain.main(GradleMain.java:23)
Caused by: org.gradle.api.GradleException: Could not call IncrementalTask.taskAction() on task ':mergeDebugResources'
    at org.gradle.util.JavaMethod.invoke(JavaMethod.java:69)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:219)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:212)
    at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:201)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:527)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:510)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
    ... 49 more
Caused by: java.lang.NoSuchMethodError: com.android.sdklib.SdkManager.createManager(Ljava/lang/String;Lcom/android/utils/ILogger;)Lcom/android/sdklib/SdkManager;
    at com.android.builder.DefaultSdkParser.initParser(DefaultSdkParser.java:76)
    at com.android.builder.SdkParser$initParser.call(Unknown Source)
    at com.android.build.gradle.internal.Sdk.loadParser(Sdk.groovy:125)
    at com.android.build.gradle.internal.Sdk$loadParser.call(Unknown Source)
    at com.android.build.gradle.BasePlugin.getLoadedSdkParser(BasePlugin.groovy:295)
    at com.android.build.gradle.BasePlugin.getAndroidBuilder(BasePlugin.groovy:318)
    at com.android.build.gradle.BasePlugin$getAndroidBuilder.call(Unknown Source)
    at com.android.build.gradle.internal.tasks.BaseTask.getBuilder(BaseTask.groovy:29)
    at com.android.build.gradle.tasks.MergeResources_Decorated.getBuilder(Unknown Source)
    at org.gradle.api.internal.BeanDynamicObject$MetaClassAdapter.getProperty(BeanDynamicObject.java:158)
    at org.gradle.api.internal.BeanDynamicObject.getProperty(BeanDynamicObject.java:112)
    at org.gradle.api.internal.CompositeDynamicObject.getProperty(CompositeDynamicObject.java:78)
    at com.android.build.gradle.tasks.MergeResources_Decorated.getProperty(Unknown Source)
    at com.android.build.gradle.tasks.MergeResources.doIncrementalTaskAction(MergeResources.groovy:136)
    at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.groovy:107)
    at org.gradle.util.JavaMethod.invoke(JavaMethod.java:62)
    ... 56 more


BUILD FAILED

Total time: 9.297 secs

我不确定为什么找不到该方法,也许构建工具18还不支持?

4个回答

10

我是来自Crashlytics的Hemal!

你能否编辑以下行内容:

    classpath 'com.android.tools.build:gradle:0.5.+'

    classpath 'com.android.tools.build:gradle:0.6.+'

应该可以为你澄清了 :)


7
我正在使用'com.android.tools.build:gradle:0.12.+'和'com.crashlytics.android:crashlytics:1.+',但错误仍然存在。 - xialin
1
@hemal-shah,我和xialin有同样的问题。你有什么建议吗?我在我的Gradle中有以下代码:dependencies { classpath 'com.android.tools.build:gradle:0.12.+' classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+' } - Hesam
@Hemal - 我遇到了这个错误:Error:Could not find any matches for com.crashlytics.tools.gradle:crashlytics-gradle:1.+ as no versions of com.crashlytics.tools.gradle:crashlytics-gradle are available. 所有的设置都来自于:https://crashlytics.com/downloads/gradle - Bipin Vayalu

4

对于所有使用"com.android.tools.build:gradle:1.0.0"和"com.crashlytics.tools.gradle:crashlytics-gradle:1.+"的人,这是我所做的:

  • 清除项目
  • 构建项目
  • 运行应用程序

编辑:如果这不起作用,请尝试ping download.crashlytics.com并检查它们是否正常。如果没有,请等待它们恢复。


在这种情况下,最好尝试使用不同的连接。因为这样明显就是一个连接问题。 - ScreenSeer

1
在我的情况下,重新安装插件解决了问题。
1) Mac:从Android Studio菜单中选择“首选项...”。 Windows和Linux:从文件菜单中选择“设置”。
2)在设置对话框右侧选择“插件”,卸载插件并重新启动Android Studio。
3)重新安装插件并重新启动Android Studio。
希望这能有所帮助。

0

清理操作无效。重建操作也无效。我可以通过命令行构建,但无法在Android Studio中构建。最后,我关闭了Android Studio并删除了build/和app/build/文件夹。然后重新打开Android Studio,应用程序再次构建成功。


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