错误:Gradle:执行任务失败:app:crashlyticsCleanupResourcesDebug。 > Crashlytics开发工具错误

我有这个主要活动

public class MainActivity extends RoboFragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Crashlytics.start(this); //setContentView(R.layout.activity_main); Intent intent = new Intent(this, MainActivity_with_Fragment.class); startActivity(intent); finish(); } } 

这是我的gradle.build

 buildscript { repositories { jcenter() maven { url 'http://download.crashlytics.com/maven' } } dependencies { classpath 'com.android.tools.build:gradle:0.14.2' classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+' } } apply plugin: 'com.android.application' apply plugin: 'crashlytics' repositories { jcenter() maven { url 'http://download.crashlytics.com/maven' } } android { compileSdkVersion 19 buildToolsVersion "19.1.0" defaultConfig { applicationId "com.example.stopcall.app" minSdkVersion 14 targetSdkVersion 19 versionCode 1 versionName "1.0" } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } lintOptions { abortOnError false } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:support-v4:21.0.3' compile 'org.roboguice:roboguice:3.+' provided 'org.roboguice:roboblender:3.+' compile 'com.crashlytics.android:crashlytics:1.+' } 

当我运行项目生成时,我得到这个编译错误:

 Error:Gradle: Execution failed for task ':app:crashlyticsCleanupResourcesDebug'. > Crashlytics Developer Tools error. 

我怎样才能解决这个问题?

您需要将您的API密钥添加到Android Manifest:

 <application> <meta-data android:name="com.crashlytics.ApiKey" android:value="your key here" /> </application> 

如果您只想用SDK编写推文,则可以删除该行

 apply plugin: 'io.fabric' 

而gradle构build将正常工作

这个方法解决了我的问题:

删除或注释这行(build.gradle):

  // apply plugin: 'io.fabric' 

或者如果您有ApiKey,则定义结构ApiKey(AndroidManifest.xml)

  <meta-data android:name="io.fabric.ApiKey" android:value="yourApiKey012356465654" /> 

我也得到了这个问题,并通过直接在元标记中直接放置string来解决问题,而没有将string资源定义为api键。

例如replace

 <meta-data android:name="io.fabric.ApiKey" android:value="@string/string_res_name_of_your_api_key" /> 

 <meta-data android:name="io.fabric.ApiKey" android:value="your_api_key_string" /> 

当您按照在Crashlytics仪表板中添加应用程序的步骤时,他们提到了添加api密钥的步骤。 在我的情况下,当我尝试从strings.xml文件中获取密钥时,出现同样的错误。 问题是crashlytics插件使用运行时API key插入方法,因此构build失败,因为它无法从string文件中获取密钥。

我尝试下面的步骤:

  1. 在build.gradle的defaultConfig中添加一个清单占位符:
  defaultConfig { manifestPlaceholders = [ api_key_crashlytics:"xxxx__your_api_key"]} 
  1. 在您的AndroidManifest.xml中添加下面的代码在您的应用程序标签:
 <meta-data android:name="io.fabric.ApiKey" android:value="${api_key_crashlytics}" /> 

这对我有效。

打开已安装的Fabric插件并更新Crashlytics,问题就解决了

我有时候面对这个问题,虽然我已经有API关键清单。 然后在尝试汇编以上载到Fabric之前,尝试组装释放apk。 所以让执行:

 $ ./gradlew assembleRelease 

然后

 $ ./gradlew assembleRelease crashlyticsUploadDistributionRelease 

它运作良好。

如果你使用Gradle分发,你可能已经检查了一些属性

ext.betaDistributionReleaseNotesFilePath =”path/到/ release_notes.txt”

在我们的情况下,我们没有这个文件,任务崩溃。 要查看问题,请转至Gradle控制台并检查日志:

在这里输入图像说明

我在这个问题和其他问题上尝试了所有的解决scheme。 但是他们都没有解决我的问题。 我解决了我的问题。 我的解决scheme可能解决您的问题 我在主文件夹下创build了空res文件夹。 项目 – > SRC-> main-> RES

截图

最有可能的是,ApiKey是不正确的只是检查出来。 为我工作。