我有这个mainActivity
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.
我该如何解决这个问题?
答案 0 :(得分:66)
您需要将API密钥添加到Android Manifest:
<application>
<meta-data
android:name="com.crashlytics.ApiKey"
android:value="your key here" />
</application>
答案 1 :(得分:35)
此方法解决了我的问题:
删除或评论此行(build.gradle):
// apply plugin: 'io.fabric'
或者如果您有ApiKey,请定义fabric ApiKey(AndroidManifest.xml)
<meta-data
android:name="io.fabric.ApiKey"
android:value="yourApiKey012356465654" />
答案 2 :(得分:25)
如果您只想用SDK撰写推文,可以删除该行
apply plugin: 'io.fabric'
gradle构建将正常工作
答案 3 :(得分:18)
我也遇到了问题并通过将字符串直接放在元标记中而不将api键定义为字符串资源来解决它。
的 e.g。
取代强>
<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" />
答案 4 :(得分:8)
当您按照在Crashlytics仪表板中添加应用程序的步骤进行操作时,他们已经提到了添加api密钥的步骤。在我的情况下,当我尝试从strings.xml文件中获取密钥时,我遇到了同样的错误。问题是crashlytics插件使用运行时api密钥插入方法,因此构建失败,因为它无法从字符串文件中获取密钥。
我尝试了以下步骤:
defaultConfig {
manifestPlaceholders = [ api_key_crashlytics:"xxxx__your_api_key"]}
<meta-data
android:name="io.fabric.ApiKey"
android:value="${api_key_crashlytics}" />
这对我有用。
答案 5 :(得分:3)
打开已安装的Fabric插件并更新Crashlytics,您的问题就解决了
答案 6 :(得分:3)
请确保您已添加
apply plugin: 'com.google.gms.google-services'
在build.gradle文件的末尾。
答案 7 :(得分:1)
我有时会面对这个问题,虽然我已经在清单中有api密钥了。然后我尝试组装发布apk,然后尝试组装上传到Fabric。所以让执行:
$ ./gradlew assembleRelease
然后
$ ./gradlew assembleRelease crashlyticsUploadDistributionRelease
并且效果很好。
答案 8 :(得分:1)
如果您使用distribution with Gradle,则可能会检查某些属性,例如
ext.betaDistributionReleaseNotesFilePath =”路径/到/ release_notes.txt”
在我们的案例中,我们没有这个文件,任务崩溃了。要查看问题,请转到Gradle控制台并检查日志:
答案 9 :(得分:0)
我尝试了所有解决方案建议在该问题和其他问题上。但他们都没有解决我的问题。我解决了我的问题。我的解决方案可以解决您的问题我在主文件夹下创建了空res文件夹。项目 - &GT; SRC-&GT; main-&GT; RES
答案 10 :(得分:0)
很可能ApiKey不正确只是检查一下。为我工作。
答案 11 :(得分:0)
您的密钥可能输入了错误的Android清单
<meta-data
android:name="io.fabric.ApiKey"
android:value="yourApiKey" /> //You must have 40 words
注册并输入项目后即可获取代码