예외 java.lang을 가져오는 중입니다.ClassDefFoundError가 없습니다. com.google.화력 기지새 Firebase로 업데이트한 후의 Firebase 옵션
나는 이것을 사용하여 내 애플리케이션을 새로운 파이어베이스로 업데이트했고 이제 내 프로젝트를 컴파일할 때 다음과 같은 예외가 발생합니다.
여기 내 로그캣이 있습니다.
11:57:54.533 27844-27844/com.example.dayshift_2.traveyy E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.dayshift_2.traveyy, PID: 27844
java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions
at com.google.firebase.FirebaseApp.zzbu(Unknown Source)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1591)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1562)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
at android.app.ActivityThread.installProvider(ActivityThread.java:4871)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4466)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4406)
at android.app.ActivityThread.access$1500(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1270)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5102)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
My Build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.example.dayshift_2.traveyy"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE-FIREBASE.txt'
exclude 'META-INF/NOTICE'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
compile 'com.facebook.android:facebook-android-sdk:4.+'
compile 'com.google.android.gms:play-services:9.0.0'
compile 'com.google.firebase:firebase-database:9.0.0'
compile 'com.google.firebase:firebase-auth:9.0.0'
compile 'com.android.support:support-v13:23.3.0'
compile 'com.roughike:bottom-bar:1.2.1'
}
apply plugin: 'com.google.gms.google-services'
이 예외를 어디서 얻었는지 잘 모르겠습니다.도움을 주시면 대단히 감사하겠습니다.감사해요.
이것은 저에게 효과가 있었습니다.
- 아직 'Google Play Services'를 업데이트하지 않았다면 Android SDK Manager > Extras에서 Revision 30으로 업데이트하십시오.
그런 다음 줄을 추가합니다.
compile 'com.android.support:multidex:1.0.1'
종속 관계(또는 단순히 제거)multiDexEnabled true
필요하지 않은 경우)매니페스트의 응용 프로그램 태그에 다음 속성을 추가합니다.
android:name="android.support.multidex.MultiDexApplication"
Android Manifest에 이미 정의된 사용자 지정 응용 프로그램 클래스가 있는 경우 다음에서 확장MultiDexApplication
대신에Application
도움이 되었기를 바랍니다!
최신 Google Play 서비스를 사용하지만 작동하지 않습니다.나에게 이 절차는 효과가 있습니다.
내 응용 프로그램 클래스 업데이트:
public class App extends Application { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } }
업데이트됨
build.gradle
파일:defaultConfig { ... multiDexEnabled true }
포함된 종속성:
dependencies { compile 'com.android.support:multidex:1.0.0' }
남자를 고치는 것은 매우 간단합니다.프로젝트에서 플레이어 서비스와 파이어베이스를 모두 사용하는 경우 Google에서 사용 가능한 모든 서비스를 가져오지 않도록 하십시오.당신이 실제로 필요로 하는 API를 가져오기만 하면 됩니다.예:
compile 'com.google.firebase:firebase-messaging:9.2.0'
compile 'com.google.android.gms:play-services:9.2.0'
이런 식으로 하면 당신에게 실수를 저지를 수 없습니다.이 문제 해결
재생 서비스를 제거하고 프로젝트를 동기화합니다.앱에서 광고나 지도를 사용하는 것과 같은 의존성이 있다면 특정 API를 정의합니다.예:
compile 'com.google.android.gms:play-services-maps:9.2.0'
참고: 최대값은 multiDexEnabled true를 사용하려고 하지 않습니다.이것이 무언가를 고치는 마지막 단계가 되어야 합니다.
이것이 도움이 되기를 바랍니다.
Google Play-Service 종속성을 에서 다운그레이드했습니다.
compile 'com.google.android.gms:play-services:9.2.0'
로.
compile 'com.google.android.gms:play-services:8.4.0'
그것이 저에게 이 문제를 해결해 주었습니다.
자세한 내용은 다음 스택 오버플로 링크를 참조하십시오.
참고:최신 Google Play-Service로 업그레이드 시
compile 'com.google.android.gms:play-services:9.4.0'
그것은 또한 이 문제를 해결했습니다.
또는 모든 Google Play 서비스를 가져오는 대신 필요한 특정 서비스를 선택적으로 가져올 수 있습니다.
1단계: 다중 인덱스 수정
응용 프로그램 클래스:
public class StudyNApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
MultiDex.install(this);
}
}
그레이드 파일
defaultConfig {
...
multiDexEnabled true
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
}
2단계: java.lang을 수정합니다.ClassDefFoundError가 없습니다. com.google.화력 기지Firebase 옵션
제거한다.
compile 'com.google.android.gms:play-services:9.4.0'
lib 두 개 추가:
compile 'com.google.android.gms:play-services-maps:9.4.0'
compile 'com.google.android.gms:play-services-location:9.4.0'
잘 작동했습니다.
그것을 잊지 마세요.
android:name="android.support.multidex.MultiDexApplication"
이것을 추가하고 8.4.0 컴파일 'com.google.android.gms:play-services:8.4.0'으로 플레이 서비스 종속성을 낮춤으로써 해결했습니다.
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(newBase);
MultiDex.install(this);
}
그리고 매니페스트에 다음 사항을 추가합니다.
android:name="android.support.multidex.MultiDexApplication"
목표치를 증가시켰을 때도 같은 오류에 직면했습니다.SDK Version 22시부터 23시까지 저는 이 문제를 해결하기 위해 최소 하루를 보냈습니다.이제 드디어 당신의 build.gradle 파일에서 다른 play 서비스 api를 사용하는 결과를 찾았습니다. 출처: https://developers.google.com/android/guides/setup#add_google_play_services_to_your_project
저는 관련 API만 추가했고 제 앱은 잘 작동하고 있습니다.
이 문제를 해결하려면 다중 인덱스용 앱을 구성하십시오.
위해서
minSdkVersion
21세트 이상multiDexEnabled
다음과 같이 모듈 레벨 build.gradle 파일에 true로 표시됩니다.
android {
defaultConfig {
//...
minSdkVersion 21
targetSdkVersion 26
multiDexEnabled true
}
//...
}
위해서
minSdkVersion
API 20 이
를 합니다.
module-level build.gradle
다음과 같이 멀티덱스 라이브러리를 종속성으로 추가합니다.android { defaultConfig { ... minSdkVersion 15 targetSdkVersion 26 multiDexEnabled true } //... } dependencies { compile 'com.android.support:multidex:1.0.1' }
클래스를 재정의하지 않는 경우 다음을(를) 편집합니다.
manifest
을android:name
응용 프로그램 태그에 다음과 같이 표시됩니다.<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapp"> <application android:name="android.support.multidex.MultiDexApplication"> //... </application> </manifest>
2.1.1. 클래스를 재정의하는 경우 Extend
MultiDexApplication
public class MyApplication extends MultiDexApplication { //... }
2.1.2. 또는 클래스를 재정의하지만 기본 클래스를 변경할 수 없는 경우에는 대신
attachBaseContext()
MultiDex.install(")은 MultiDex입니다.public class MyApplication extends SomeOtherApplication { @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } }
좀더 mdex-gradle을 위하여.
이것이 같은 문제에 직면한 다른 사람들에게 도움이 되기를 바랍니다.
저는 이 답변에서 이 문제에 대한 해결책을 찾았다고 생각합니다. 한번 보고 감사합니다, @Gabriele Mariotti, 그는 다음과 같이 썼습니다.
최상위 build.gradle에서 다음을 추가해야 합니다.
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.0.0'
}
}
그런 다음 build.gradle 모듈에서 다음을 수행합니다.
apply plugin: 'com.android.application'
android {
// ...
}
dependencies {
// ...
}
// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(**R.string.default_web_client_id**))
.requestEmail()
.build();
같은 경우에 requestId를 변경했습니다.토큰이 효과가 있었습니다.
dependencies {
compile 'com.android.support:support-v4:25.0.1'
compile 'com.google.firebase:firebase-ads:9.0.2'
compile files('libs/StartAppInApp-3.5.0.jar')
compile 'com.android.support:multidex:1.0.1'
}
: 플그인적:'com.google.gms.google-services'
.
해결하려고 노력합니다...
그라들 줄로
multiDexEnabled true
com.dll을 컴파일합니다.지원:multidex:1.0.1'
매니페스트 파일
응용 프로그램 태그 이 줄 추가
안드로이드:name="android.support.multidex.MultiDex 응용 프로그램"
이러한 바쁜 솔루션을 모두 수행하기 전에 Android Studio에서 Clean Project 또는 Rebuild Project를 시도해 보십시오.
java.lang. NoClassDefFoundError
프로젝트에서 클래스 이름을 변경할 때 예외가 발생하지만 런타임에서 변경한 내용을 가져올 수 없습니다.
의 종속성을 다운그레이드합니다.build.gradle
파일 이름:
출처:
compile 'com.google.android.gms:play-services:9.4.0'
대상:
compile 'com.google.android.gms:play-services:7.3.0'
이것은 제 경우에도 효과가 있었습니다, 당신도 그러길 바랍니다.
언급URL : https://stackoverflow.com/questions/37360126/getting-exception-java-lang-noclassdeffounderror-com-google-firebase-firebaseop
'programing' 카테고리의 다른 글
mongodump에 대한 디렉토리/폴더를 지정할 수 있습니까? (0) | 2023.07.04 |
---|---|
Linux에서 ASP.NET MVC 구축: 모범 사례, 툴 및 놀라움 (0) | 2023.07.04 |
ssh 터널 체인(이중 터널, 회사 네트워크의 서버)을 통해 Oracle Database 11g 서버에 연결하려면 어떻게 해야 합니까? (0) | 2023.07.04 |
고유한 레코드 값 가져오기 (0) | 2023.07.04 |
스프링 보안이 설정된 스프링 부트: 'securityFilterChainRegistration' 이름의 빈을 생성하는 중 오류 발생 (0) | 2023.07.04 |