最新的 Fabric 文档说
如果将 Android 插件用于 Gradle 版本 2.2.0+ 和 externalNativeBuild DSL,则应删除 androidNdkOut 和 androidNdkLibsOut 属性,因为 Fabric 插件会自动检测这些路径。但这对我不起作用,因为我猜我的本机代码位于库模块中。我在库模块中有本机代码,并在应用程序模块中启用了 Crashlytics。我怎样才能让它工作?
我正在使用 com.android.tools.build:gradle:2.3.3 和 io.fabric.tools:gradle:1.23.0。
错误:
com.crashlytics.tools.android.project.codemapping.CodeMappingException:Crashlytics 找不到 NDK 输出目录“[我的应用程序模块路径]/obj”。-androidNdkOut 设置是否配置正确?
更新。我将 Crashlytics 配置移至我的库模块:
buildscript {
repositories {
jcenter()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath('com.android.tools.build:gradle:2.3.3') {
force = true
}
classpath 'io.fabric.tools:gradle:1.23.0'
}
}
repositories {
jcenter()
}
apply plugin: 'com.android.library'
apply plugin: 'io.fabric'
android {
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
publishNonDefault true
defaultConfig {
minSdkVersion 16
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 1
versionName "1.0"
ndk {
moduleName "core"
}
externalNativeBuild {
ndkBuild {
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64", "mips", "mips64"
}
}
}
lintOptions {
abortOnError false
}
buildTypes {
debug {
debuggable true
jniDebuggable true
minifyEnabled false
}
release {
debuggable false
jniDebuggable false
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
externalNativeBuild {
ndkBuild {
path 'jni/Android.mk'
}
}
}
crashlytics {
enableNdk true
baseManifestPath '../app/src/main/AndroidManifest.xml'
}
dependencies {
compile "com.android.support:support-v4:${rootProject.ext.supportLibVersion}"
compile "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
compile "com.android.support:design:${rootProject.ext.supportLibVersion}"
compile "com.google.android.gms:play-services-maps:${rootProject.ext.playServicesVersion}"
compile "com.google.android.gms:play-services-location:${rootProject.ext.playServicesVersion}"
}
我的应用模块现在只包含依赖项:
dependencies {
// Crashlytics Kit
compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
transitive = true
}
// NDK Kit
compile('com.crashlytics.sdk.android:crashlytics-ndk:1.1.6@aar') {
transitive = true
}
}
但现在我收到错误
在 com.crashlytics.tools.gradle.CrashlyticsExtension 类型的对象上找不到参数 [我的清单的路径] 的方法 baseManifestPath()。