错误: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是不正确的只是检查出来。 为我工作。