错误:Gradle:任务':app:crashlyticsCleanupResourcesDebug'的执行失败.> Crashlytics开发人员工具错误

Ela*_*nda 51 android crashlytics android-gradle-plugin

我有这个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();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的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.+'
}
Run Code Online (Sandbox Code Playgroud)

当我运行项目构建时,我收到此编译错误:

Error:Gradle: Execution failed for task ':app:crashlyticsCleanupResourcesDebug'.
> Crashlytics Developer Tools error.
Run Code Online (Sandbox Code Playgroud)

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

Bil*_*ote 68

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

<application>
    <meta-data
        android:name="com.crashlytics.ApiKey"
        android:value="your key here" />
</application>
Run Code Online (Sandbox Code Playgroud)

  • 我只想使用面料进行Twitter登录.我为什么要使用crashlytics.我还有同样的问题.你能解决这个问题吗? (2认同)

Fat*_*him 37

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

删除或评论此行(build.gradle):

  // apply plugin: 'io.fabric'
Run Code Online (Sandbox Code Playgroud)

或者如果您有ApiKey,请定义fabric ApiKey(AndroidManifest.xml)

    <meta-data
        android:name="io.fabric.ApiKey"
        android:value="yourApiKey012356465654" />
Run Code Online (Sandbox Code Playgroud)


Khr*_*riz 25

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

apply plugin: 'io.fabric'
Run Code Online (Sandbox Code Playgroud)

gradle构建将正常工作


Has*_*mil 18

我也解决了这个问题并通过直接将字符串放在元标记中来解决它,而没有将api密钥定义为字符串资源.

例如,替换

<meta-data
        android:name="io.fabric.ApiKey"
        android:value="@string/string_res_name_of_your_api_key" />
Run Code Online (Sandbox Code Playgroud)

<meta-data
        android:name="io.fabric.ApiKey"
        android:value="your_api_key_string" />
Run Code Online (Sandbox Code Playgroud)


小智 8

当您按照在Crashlytics仪表板中添加应用程序的步骤进行操作时,他们已经提到了添加api密钥的步骤.在我的情况下,当我尝试从strings.xml文件中获取密钥时,我遇到了同样的错误.问题是crashlytics插件使用运行时api密钥插入方法,因此构建失败,因为它无法从字符串文件中获取密钥.

我尝试了以下步骤:

  1. 在build.gradle的defaultConfig中添加一个清单占位符:
    defaultConfig {
    manifestPlaceholders = [ api_key_crashlytics:"xxxx__your_api_key"]}
Run Code Online (Sandbox Code Playgroud)
  1. 在AndroidManifest.xml中,在应用程序标记内添加以下代码:
<meta-data
      android:name="io.fabric.ApiKey"
      android:value="${api_key_crashlytics}" />
Run Code Online (Sandbox Code Playgroud)

这对我有用.