Android 无法摆脱Crashlytics在复杂项目上引发的错误
一个多星期以来,我一直在尝试将Crashlytics集成到我的一个项目中。我试过以下几件事Android 无法摆脱Crashlytics在复杂项目上引发的错误,android,firebase,crashlytics,crashlytics-android,Android,Firebase,Crashlytics,Crashlytics Android,一个多星期以来,我一直在尝试将Crashlytics集成到我的一个项目中。我试过以下几件事 如果我尝试在一个新创建的项目中实现,该项目不包含任何依赖项及其用法(我将在下面向您展示),Crashlytics将在Firebase遵循官方文档后自动配置 如果我试图在一个包含以下依赖项的项目中实现它,以及它们在项目中的用法,它会抛出3种错误 必须在使用singleton之前初始化结构。 当我在我的一个应用程序类中初始化结构时,在编译之后,它会显示以下错误 清单中缺少结构Api密钥,请将其添加到清单中。
- 如果我尝试在一个新创建的项目中实现,该项目不包含任何依赖项及其用法(我将在下面向您展示),Crashlytics将在Firebase遵循官方文档后自动配置
- 如果我试图在一个包含以下依赖项的项目中实现它,以及它们在项目中的用法,它会抛出3种错误
当我在我的一个应用程序类中初始化结构时,在编译之后,它会显示以下错误必须在使用singleton之前初始化结构。
- 清单中缺少结构Api密钥,请将其添加到清单中。 当我通过在fabric.io中从控制台复制api密钥并将其适当粘贴到manifest中来解决此问题时, 编译后显示如下错误
这是一个永远不会发生的错误,即使我尝试了与之相关的各种解决方案。它永远不会消失缺少Crashlytics生成ID。
implementation project(':library')
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.annotation:annotation:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.sothree.slidinguppanel:library:3.4.0'
implementation 'de.hdodenhof:circleimageview:3.0.0'
implementation 'com.facebook.fresco:fresco:1.13.0'
implementation 'com.jakewharton:butterknife:10.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
/* dagger dependency for DI*/
implementation "com.google.dagger:dagger:2.23.2"
annotationProcessor "com.google.dagger:dagger-compiler:2.23.2"
compileOnly 'javax.annotation:jsr250-api:1.0'
implementation 'javax.inject:javax.inject:1'
/*Retrofit lib*/
implementation 'com.squareup.retrofit2:retrofit:2.6.0'
implementation 'com.squareup.retrofit2:converter-gson:2.6.0'
/*RxJava lib*/
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation "io.reactivex.rxjava2:rxjava:2.2.9"
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
/* LiveData lib*/
implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'
implementation 'androidx.lifecycle:lifecycle-runtime:2.1.0'
annotationProcessor 'androidx.lifecycle:lifecycle-common-java8:2.1.0'
/* Crashlytics */
implementation 'com.google.firebase:firebase-analytics:17.2.0'
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
/* Necessary library for handling permission callbacks easily */
implementation 'pub.devrel:easypermissions:3.0.0'
/* Better logging */
implementation 'com.jakewharton.timber:timber:4.7.1'
这也是一个由我和我的伙伴建立的项目,我不知道为什么他在这个项目中添加了另一个项目,以一个名为“库”的模块的形式,这就是为什么你可以看到实现项目(':library')
一开始就有一行。但我也尝试过删除它,并在项目内部复制此项目的文件,而不是将其作为单独的模块添加,但这并没有改变正在发生的错误中的任何内容
如果你们中的任何人知道在两种不同的场景中Crashlytics这种奇怪行为的解决方法或解决方案,一定要回答
编辑:这是未按要求提供密钥的清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="fibamlscan.app">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<application
android:name=".App"
android:usesCleartextTraffic="true"
android:icon="@android:drawable/ic_menu_today"
android:supportsRtl="true"
android:label="@string/app_name"
android:theme="@style/AppTheme"
tools:ignore="AllowBackup,GoogleAppIndexingWarning"
tools:targetApi="m">
<activity android:name=".s2s_transfer.S2STransferScanner" />
<activity android:name=".s2s_transfer.S2STransferActivity" />
<activity android:name=".stock_transfer_received.StockTransferReceivedActivity" />
<activity android:name=".damaged_goods.DamagedGoodsActivity" />
<activity android:name=".dispatch.CreateNewDispatchActivity" />
<activity
android:name=".dispatch.DispatchOrder"
android:label="@string/title_activity_dispatch_order"
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".menu.MenuActivity"
android:label="@string/title_activity_menu"
android:theme="@style/AppTheme.NoActionBar" />
<activity android:name=".ui.login.LoginActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".grn.PreviewActivity" />
<activity
android:name=".grn.GrnOrder"
android:label="@string/title_activity_grn"
android:theme="@style/AppTheme.NoActionBar" />
<activity android:name=".dispatch.PreviewActivity" />
<activity android:name=".metro.dispatch.PreviewActivity" />
<activity android:name=".goodsreturn.CreateNewDispatchActivity" />
<activity android:name=".goodsreturn.PreviewActivity" />
<activity android:name=".goodsreturn.DispatchOrder" />
<activity android:name=".metro.dispatch.DispatchOrder" />
<activity android:name=".warehouseAudit.PreviewActivity" />
<activity android:name=".audit.PreviewActivity" />
<activity android:name=".damaged_goods.DamagedGoodsScanner" />
<activity android:name=".warehouseAudit.WarehouseSelectionActivity" />
<meta-data
android:name="com.google.firebase.ml.vision.DEPENDENCIES"
android:value="barcode" />
</application>
</manifest>
请在没有按键的情况下发布您的清单文件。您的gradle顶部可能缺少
应用插件:'io.fabric
或GradleOk中的某些内容。这是react本机应用程序吗?不。事实并非如此。它是在Android Studio中为Android构建的。请在没有按键的情况下发布你的清单文件。你的gradle顶部可能缺少应用插件:“io.fabric
或gradle中的某些内容。好的,将上传gradle代码。这是react本机应用程序吗?不。事实并非如此。它是在Android Studio中为Android构建的
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
android {
compileSdkVersion rootProject.ext.compileSdkVersion
defaultConfig {
applicationId "co.behtarinternal.app"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode rootProject.ext.versionCode
versionName "${rootProject.ext.versionName}"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
useProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled false
// signingConfig signingConfigs.debug
useProguard false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation project(':library')
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.annotation:annotation:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.sothree.slidinguppanel:library:3.4.0'
implementation 'de.hdodenhof:circleimageview:3.0.0'
implementation 'com.facebook.fresco:fresco:1.13.0'
implementation 'com.jakewharton:butterknife:10.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'
/* dagger dependency for DI*/
implementation "com.google.dagger:dagger:2.23.2"
annotationProcessor "com.google.dagger:dagger-compiler:2.23.2"
compileOnly 'javax.annotation:jsr250-api:1.0'
implementation 'javax.inject:javax.inject:1'
/*Retrofit lib*/
implementation 'com.squareup.retrofit2:retrofit:2.6.0'
implementation 'com.squareup.retrofit2:converter-gson:2.6.0'
/*RxJava lib*/
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation "io.reactivex.rxjava2:rxjava:2.2.9"
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
/* LiveData lib*/
implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'
implementation 'androidx.lifecycle:lifecycle-runtime:2.1.0'
annotationProcessor 'androidx.lifecycle:lifecycle-common-java8:2.1.0'
/* Crashlytics */
implementation 'com.google.firebase:firebase-core:17.2.0'
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
/* Necessary library for handling permission callbacks easily */
implementation 'pub.devrel:easypermissions:3.0.0'
/* Better logging */
implementation 'com.jakewharton.timber:timber:4.7.1'
}
apply plugin: 'com.google.gms.google-services'