【问题标题】:Crashlytics with Hello Jni AppCrashlytics 与 Hello Jni 应用程序
【发布时间】:2016-11-10 09:57:43
【问题描述】:

我遇到了一些关于 crashlytics 的问题。我想我无法设置 crashlytics androidNdkOut 和 androidNdkLibsOut 路径。

第一个问题是,根据这个 gradle 设置,gradle 的 ndk 的默认输出路径是什么? 其次,如果设置正确,为什么我将我的 ndk 错误视为“???”在 Crashlytics 仪表板上?

这是我的应用 build.gradle

    // Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0'
        classpath 'io.fabric.tools:gradle:1.21.7'
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

这是我的模块的 build.gradle:

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

android {
    compileSdkVersion 24
    buildToolsVersion '23.0.3'
    defaultConfig {
        applicationId "com.test.crashlyticsndktest"
        minSdkVersion 15
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        ndk {
            moduleName "crashlytics-jni"
            abiFilters "armeabi"
            cFlags "-g"
        }
    }

}

crashlytics {
    enableNdk=true
    androidNdkOut getProjectDir().absolutePath +'/build/intermediates/ndk/debug/lib'
    //androidNdkOut "src/main/obj"
    androidNdkLibsOut getProjectDir().absolutePath + "/build/intermediates/ndk/debug/obj/local"
    //androidNdkLibsOut "src/main/jniLibs"

}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:design:24.2.1'
    testCompile 'junit:junit:4.12'
    compile('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
        transitive = true;
    }
    compile('com.crashlytics.sdk.android:crashlytics-ndk:1.1.5@aar') { transitive = true; }
}

这是我的 proguard 文件:

-keep public class * extends java.lang.Exception
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**
-keepattributes SourceFile,LineNumberTable,Annotation
-keep class com.crashlytics.android.**

这是我的 Activity 的 Fabric 代码:

Fabric.with(this, new Crashlytics(),new CrashlyticsNdk());

【问题讨论】:

    标签: android android-ndk crashlytics twitter-fabric


    【解决方案1】:

    来自 Fabric 团队的 Matt!

    我想让您知道,我们刚刚发布了用于 Gradle 的 Fabric 插件 1.23.0 版,当您使用带有 @ 的 Android Gradle 插件 2.2.0+ 时,它支持自动解析适当的本机库路径987654321@ DSL,因此如果您使用最新的 Android Gradle 插件,则不再需要设置 androidNdkOut 和 androidNdkLibsOut。这应该可以帮助您正确上传 NDK 符号并改进堆栈跟踪!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-01
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      相关资源
      最近更新 更多