Java.lang.NoClassDefFoundError:解析失败:Lcom/google/firebase/FirebaseApp
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/50608169/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/FirebaseApp
提问by Alex Khanenya
This is React Native project. I have an error after successful build in Android Studio Emulator:
这是 React Native 项目。在 Android Studio Emulator 中成功构建后出现错误:
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/FirebaseApp
java.lang.NoClassDefFoundError:解析失败:Lcom/google/firebase/FirebaseApp
My files:
我的文件:
package.json:
包.json:
...
"react-native": "^0.55.3",
"react-native-camera": "1.1.2",
"react-native-check-box": "^2.1.0",
"react-native-extended-stylesheet": "^0.8.1",
"react-native-firebase": "^4.2.0",
"react-native-geocoder": "^0.5.0",
"react-native-git-upgrade": "^0.2.7",
"react-native-htmlview": "^0.12.1",
"react-native-image-picker": "^0.26.10",
"react-native-linear-gradient": "^2.4.0",
"react-native-local-storage": "^1.5.2",
"react-native-maps": "^0.21.0",
"react-native-modal": "^5.4.0",
"react-native-modal-dropdown": "^0.6.1",
"react-native-read-more-text": "^1.0.0",
"react-native-router-flux": "^4.0.0-beta.27",
"react-native-svg-image": "^2.0.1",
"react-native-text-input-mask": "^0.7.0",
...
android/app/build.gradle:
android/app/build.gradle:
...
android {
compileSdkVersion 27
buildToolsVersion "27.0.1"
defaultConfig {
applicationId "com.something.anything"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
ndk {
abiFilters "armeabi-v7a", "x86"
}
multiDexEnabled true
}
signingConfigs {
release {
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86"
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
def versionCodes = ["armeabi-v7a":1, "x86":2]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}
}
}
dependencies {
compile(project(':react-native-firebase')) {
transitive = false
}
compile project(':react-native-geocoder')
compile(project(':react-native-maps')) {
exclude group: 'com.google.android.gms', module: 'play-services-base'
exclude group: 'com.google.android.gms', module: 'play-services-maps'
exclude group: 'com.google.android.gms', module: 'play-services-location'
}
compile 'com.google.android.gms:play-services-base:15.+'
compile 'com.google.android.gms:play-services-maps:15.+'
compile 'com.google.android.gms:play-services-location:15.+'
compile (project(':react-native-camera')) {
exclude group: "com.google.android.gms"
compile 'com.android.support:exifinterface:25.+'
compile ('com.google.android.gms:play-services-vision:12.0.1') {
force = true
}
}
compile project(':react-native-text-input-mask')
compile project(':react-native-linear-gradient')
compile project(':react-native-image-picker')
compile fileTree(dir: "libs", include: ["*.jar"])
compile "com.android.support:appcompat-v7:23.0.1"
compile "com.facebook.react:react-native:+" // From node_modules
}
allprojects {
repositories {
maven { url "https://jitpack.io" }
maven { url "https://maven.google.com" }
}
}
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.compile
into 'libs'
}
android/build.gradle
android/build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
mavenLocal()
jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
}
}
subprojects {
project.configurations.all {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.android.support'
&& !details.requested.name.contains('multidex')
) {
details.useVersion "27.1.0"
}
}
}
}
I've tried a lot of solutions but nothing helped.
我尝试了很多解决方案,但没有任何帮助。
回答by Alexey Grinko
Faced the same issue. Then I found out that I missed an important set of instructions to integrate Firebase with Android project: https://firebase.google.com/docs/android/setup#add_firebase_to_your_app
面临同样的问题。然后我发现我错过了将 Firebase 与 Android 项目集成的一组重要说明:https://firebase.google.com/docs/android/setup#add_firebase_to_your_app
Here is the summary of the steps in that documentation that helped in my case:
以下是该文档中对我的案例有帮助的步骤的摘要:
- Generate
google-services.json
and put it to yourandroid/app/
directory. - Add
classpath 'com.google.gms:google-services:4.1.0'
tobuildscript -> dependencies
section of your root-levelbuild.gradle
config; addgoogle()
toallprogects -> repositories
section of the same file. - Add
implementation 'com.google.firebase:firebase-core:16.0.3'
todependencies
section of your app module'sbuild.gradle
file; addapply plugin: 'com.google.gms.google-services'
at the very bottom of the same file. - Sync and rebuild. Now it should work.
- 生成
google-services.json
并将其放入您的android/app/
目录中。 - 添加
classpath 'com.google.gms:google-services:4.1.0'
到buildscript -> dependencies
根级build.gradle
配置的部分;添加google()
到allprogects -> repositories
同一文件的部分。 - 添加
implementation 'com.google.firebase:firebase-core:16.0.3'
到dependencies
应用模块build.gradle
文件的部分;添加apply plugin: 'com.google.gms.google-services'
在同一文件的最底部。 - 同步和重建。现在它应该可以工作了。
回答by Anand saga
changed latest firebase-messaging google dependencies and modified other dependencies also in a same version in app gradle file. working fine now
更改了最新的 firebase-messaging google 依赖项,并在应用程序 gradle 文件中的同一版本中修改了其他依赖项。现在工作正常
dependencies version detail you can refer here
dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
implementation 'com.google.firebase:firebase-auth:17.0.0'
implementation 'com.google.firebase:firebase-messaging:18.0.0'
}
回答by pritam_parker
In my case I forgot to comment Database Package in MainApplication.java
就我而言,我忘记在 MainApplication.java 中评论数据库包
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new AsyncStoragePackage(),
new RNCameraPackage(),
new VectorIconsPackage(),
new RNGestureHandlerPackage(),
new RNFirebasePackage(),
// add/remove these packages as appropriate
//new RNFirebaseAdMobPackage(),
new RNFirebaseAnalyticsPackage(),
//new RNFirebaseAuthPackage(),
// new RNFirebaseRemoteConfigPackage(),
new RNFirebaseCrashlyticsPackage(),
// new RNFirebaseDatabasePackage(), <==== Comment this package
// new RNFirebaseFirestorePackage(),
// new RNFirebaseFunctionsPackage(),
new RNFirebaseInstanceIdPackage(),
// new RNFirebaseInvitesPackage(),
new RNFirebaseLinksPackage(),
new RNFirebaseMessagingPackage(),
new RNFirebaseNotificationsPackage(),
new RNFirebasePerformancePackage()
// new RNFirebaseStoragePackage()
);
}
回答by Dulaj Madusanka
回答by Tiago Gouvêa
On your android/app/build.gradle
add one more implementation on dependeces:
在android/app/build.gradle
依赖项上再添加一个实现:
...
dependencies {
implementation "com.google.firebase:firebase-auth:17.0.0"
...
}
回答by Anubhav Mittal
There is probably some problem with the dependencies involved.
所涉及的依赖项可能存在一些问题。
In my case, making the following changes worked perfectly in the app level build.gradle
就我而言,进行以下更改在应用程序级别完美运行 build.gradle
dependencies{
implementation 'com.google.firebase:firebase-auth:17.0.0'
implementation 'com.firebaseui:firebase-ui-database:6.0.2'
...
}
回答by Tobias Arantes
In the gradle.properties file, try adding::
在 gradle.properties 文件中,尝试添加::
android.enableJetifier = true
android.useAndroidX = true
回答by developerSumit
If your are facing this issue in Flutter, Add this dependency in your android/app/build.gradle. And run your main.dart. No need to add any type of controller in ListView. If you are using listview on that page. Is you are using Firebase please add this in depencdencies.
如果您在 Flutter 中遇到此问题,请在您的 android/app/build.gradle 中添加此依赖项。然后运行你的 main.dart。无需在 ListView 中添加任何类型的控制器。如果您在该页面上使用列表视图。您是否正在使用 Firebase,请将其添加到依赖项中。
implementation "com.google.firebase:firebase-auth:19.3.0"
implementation "com.google.firebase:firebase-auth:19.3.0"