我正在尝试使用eclipse构建一个android gradle项目,但是在使用命令行构建项目时出现此错误:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:crashlyticsCleanupResourcesRelease'.
> Crashlytics Developer Tools error.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug
option to get more log output.
BUILD FAILED
我使用gradle版本1.10也试过gradle版本1.12但是我得到了同样的错误
这是我的build.gradle文件:
buildscript {
repositories {
mavenCentral()
maven { url 'http://download.crashlytics.com/maven' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.+'
classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.10.+'
}
}
apply plugin: 'android-sdk-manager'
apply plugin: 'android'
apply plugin: 'crashlytics'
repositories {
mavenCentral()
maven { url 'http://download.crashlytics.com/maven' }
}
android {
compileSdkVersion 19
buildToolsVersion "19.1.0"
lintOptions.checkReleaseBuilds false
defaultConfig {
minSdkVersion 7
targetSdkVersion 19
}
signingConfigs {
release {
storeFile file(STORE_FILE)
storePassword STORE_PASSWORD
keyAlias KEY_ALIAS
keyPassword KEY_PASSWORD
}
}
buildTypes {
debug {
ext.enableCrashlytics = false
buildConfigField "boolean", "LOG_CRASHES", "false"
}
release {
buildConfigField "boolean", "LOG_CRASHES", "true"
runProguard true
proguardFile 'proguard.cfg'
signingConfig signingConfigs.release
}
}
}
dependencies {
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
compile 'com.android.support:support-v4:19.1.0'
compile 'com.crashlytics.android:crashlytics:1.+'
}
答案 0 :(得分:36)
尝试使用Fabric的Twitter工具包时出现了类似的错误
Error:Execution failed for task ':app:fabricCleanupResourcesDevDebug'.
> Crashlytics Developer Tools error.
详细错误
错误 - Crashlytics Developer Tools错误。 java.lang.IllegalArgumentException:Crashlytics发现了一个无效的API密钥:XXXXXXXXX。 检查Crashlytics插件以确保已成功添加应用程序! 请联系support@fabric.io寻求帮助。
登录Fabric后,下载AndroidStudio插件,让它配置一切正常。
(顺便说一句,我真的不喜欢这个设置流程)
编辑:也可以在不安装AndroidStudio插件的情况下完成。请遵循Fabric网站https://fabric.io/downloads/gradle
中的这些说明答案 1 :(得分:19)
这不是原始问题的解决方案,但您也可以通过其他方式遇到此错误。如果您正在关注Gradle Advanced Setup的文档,则可能包含以下代码
debug {
ext.enableCrashlytics = false
}
现在,如果您正在测试应用程序,则可能尝试设置ext.enableCrashlytics = true
。显然,这会导致Crashlytics出现错误,并且不是此变量的有效值。
因此,如果您希望为调试版本启用Crashlytics,则在测试或删除它时,您需要注释掉该行。
答案 2 :(得分:13)
将此行添加到应用程序内部标记
中<?php
if (isset($_POST['submit'])) {
$data_missing = array();
if(empty($_POST['airline'])) {
$data_missing[] = 'Flygbolag';
} else {
$airline = $_POST['airline'];
}
if(empty($_POST['registration'])) {
$data_missing[] = 'Registrering';
} else {
$registration = $_POST['registration'];
}
if(empty($_POST['msn'])) {
$data_missing[] = 'MSN';
} else {
$msn = $_POST['msn'];
}
if(empty($_POST['aircrafttype'])) {
$data_missing[] = 'Flygplanstyp';
} else {
$aircrafttype = $_POST['aircrafttype'];
}
if(empty($_POST['enginedata'])) {
$data_missing[] = 'Motorer';
} else {
$enginedata = $_POST['enginedata'];
}
if(empty($_POST['loc'])) {
$data_missing[] = 'Plats';
} else {
$loc = $_POST['loc'];
}
}
if (empty($data_missing)) {
require_once('../dbconnect.php');
$query = "INSERT INTO Aircraft_spotted VALUES (?, ?, ?, ?, ?, ?)";
$stmt = mysqli_prepare($conn, $query);
mysqli_stmt_bind_param($stmt, "ssisss", $airline, $registration, $msn, $aircrafttype, $enginedata, $loc);
mysqli_stmt_execute($stmt);
$affected_rows = mysqli_stmt_affected_rows($stmt);
if ($affected_rows == 1) {
echo "Aircraft entered to database";
mysqli_stmt_close($stmt);
mysqli_close($conn);
} else {
echo "Error occured: " . mysqli_error();
}
} else {
echo "You need to enter the following data: <br />";
foreach ($data_missing as $missing) {
echo "$missing<br />";
echo "string";
}
}
?>
我解决了这个问题
答案 3 :(得分:9)
我通过在AndroidManifest.xml中用“com.crashlytics.ApiKey”替换“io.fabric.ApiKey”解决了这个问题(我不想改变Crashlytics lib)。所以最后一个是:
<meta-data
android:name="com.crashlytics.ApiKey"
android:value="xxxxxxxx" />
答案 4 :(得分:5)
<meta-data
android:name="com.crashlytics.ApiKey"
android:value="your key" />
我有类似问题。只需将这些行添加到您的Android清单文件中即可。
答案 5 :(得分:1)
所以我遇到了这个问题并解决了它。
基本上,我试图使用@ string / crashlytics_key_prod,而不是放入实际的密钥。
更换&#34; @ string / crashlytics_key_prod&#34;通过清单中的实际密钥为我解决了这个问题。