错误: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文件中获取密钥。
我尝试下面的步骤:
- 在build.gradle的defaultConfig中添加一个清单占位符:
  defaultConfig { manifestPlaceholders = [ api_key_crashlytics:"xxxx__your_api_key"]} 
- 在您的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是不正确的只是检查出来。 为我工作。