이름이 [DEFAULT]인 FirebaseApp이 없습니다.
Firebase Cloud Messaging으로 마이그레이션한 후.앱을 열 때 충돌하고 다음과 같은 오류가 발생합니다.java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist.
나는 이미 나의 새로운 구글 서비스.json을 넣고 SDK를 업데이트했습니다.
내 기본 활동입니다.
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Check Google play service
GoogleApiAvailability googleAPI = GoogleApiAvailability.getInstance();
int resultCode = googleAPI.isGooglePlayServicesAvailable(this);
if (resultCode != ConnectionResult.SUCCESS) {
if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) {
GooglePlayServicesUtil.getErrorDialog(resultCode, this,
PLAY_SERVICES_RESOLUTION_REQUEST).show();
} else {
Log.e(LOG_TAG, "This device is not supported.");
finish();
}
}
Log.i(TAG, "InstanceID token: " + FirebaseInstanceId.getInstance().getToken());
}
}
다시 한번 확인해 주세요, 당신이 추가했습니다.
apply plugin: 'com.google.gms.google-services'
앱의 Gradle 파일 하단에 있는 다음 프로젝트를 정리하고 다시 빌드합니다.
확실하지 않습니다, 여기에 관련이 있는지 없는지.그러나 이러한 충돌이 발생할 수 있는 또 다른 시나리오가 있습니다.
앱에 서비스(프로세스가 다른)가 있고 자신만의 서비스를 만드는 경우Application
클래스, 서비스 및 포그라운드 앱은 동일한 응용 프로그램 클래스(동일한 인스턴스가 아님)를 사용하여 초기화합니다.이제 사용할 때com.google.firebase:firebase-crash
충돌을 처리하기 위한 의존성, 그것은 백그라운드 서비스를 만듭니다.your.app.packagename:background_crash
어떤 이유에서인지, 이것은 내 앱에서 충돌을 유발했습니다.특히, 애플리케이션 수업 시간에, 저는 다음과 같은 전화를 걸고 있었습니다.
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
애플리케이션 클래스를 초기화할 때 백그라운드 서비스가 어떻게든 Firebase가 초기화되지 않은 것 같습니다.이것을 고치기 위해, 저는 했습니다.
if (!FirebaseApp.getApps(this).isEmpty())
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
저도 비슷한 문제가 있었고, 저에게는 명백한 합병에 대한 버그/문제였습니다.나는 그것은FirebaseInitProvider
때문에 최종 매니페스트 파일에 주입되지 않았습니다.tools:node="replace"
내 앱의 매니페스트 파일에 있습니다.그래서, 이 xml 태그를 제거해 보십시오.FirebaseInitProvider
주입되고 Firebase를 올바르게 초기화할 수 있습니다.
build.gradle 파일:
buildscript {
repositories {
jcenter()
mavenLocal()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
classpath 'com.google.gms:google-services:3.0.0'
}
}
allprojects {
repositories {
jcenter()
mavenLocal()
}
}
\app\build.gradle 파일:
apply plugin: 'com.android.application'
android {
..
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
..
compile 'com.google.firebase:firebase-core:9.0.2'
compile 'com.google.firebase:firebase-messaging:9.0.2'
}
apply plugin: 'com.google.gms.google-services'
@jmodrako 대답은 내 문제를 해결했습니다... tools:node="replace"
로.tools:node="merge"
설명...AndroidManifest.xml에서
부터
<application
...
tools:node="replace">
로.
<application
...
tools:node="merge">
라이브러리 테마와 문제를 병합하시겠습니까?다음을 사용하여 해결된 빌드tools:replace="android:theme"
https://stackoverflow.com/a/38060272/2765087 에 대한 크레딧
onCreate of Application 클래스 내에서 Firebase 초기화를 이동합니다.또한 오프라인 지속성을 사용하도록 설정한 경우에는 FirebaseDatabase.getInstance().setPersistenceEnabled(true)가 다른 초기화보다 먼저 와야 합니다.
아래와 같이 모든 구성을 확인합니다.
1-firebase 프로젝트 설정: 구글-services.json이 맞습니까?
2-파이어베이스 SDK 추가
3-청결 - 프로젝트 재구축
바라건대, 이것이 도움이 됩니다!
다음 행을 app/build.gradle에 추가합니다.
apply plugin: 'com.google.gms.google-services' // Google Services plugin
다음 줄은 프로젝트 build.gradle에 대한 것입니다.
classpath 'com.google.gms:google-services:4.3.3'
안드로이드 스튜디오
- 플러그인 적용: 'com.google.gms.google-services'(build.gradle - 모듈 계층)
- 메뉴~>구축~>프로젝트 정리
나한테 효과가 있어, ok.
파이어베이스에 애플리케이션을 등록하고 구글-services.json을 루트 프로젝트에 복사합니다.
적용합니다.classpath 'com.google.gms:google-services:3.1.0
root build.gradle입니다.
적용합니다.apply plugin: 'com.google.gms.google-services
당신의 프로젝트의 영광입니다.
종속성에 다음을 추가하면 됩니다.
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
...
compile 'com.google.firebase:firebase-core:9.0.2'
compile 'com.google.firebase:firebase-messaging:9.0.2'
}
적용합니다.plugin: 'com.google.gms.google-services'
빌드 작업(Google ServicesJson)을 파일 이름 Google 서비스로 변경합니다.죤.
앱 시작 시 Firebase를 초기화하지 않은 경우 해결하기 위해 다음을 수행해야 했습니다.
@Service
public class FirebaseSetup implements CommandLineRunner {
public void run(String... args) throws Exception {
initializeFirebase();
}
private void initializeFirebase() throws FileNotFoundException, IOException {
FileInputStream serviceAccount = new FileInputStream(ResourceUtils.getFile("classpath:ssf1-v1-firebase-adminsdk-zr72u-afcb5bc13b.json"));
FirebaseOptions options = new FirebaseOptions.Builder().setCredentials(GoogleCredentials.fromStream(serviceAccount)).build();
FirebaseApp.initializeApp(options);
}
}
더하다classpath 'com.google.gms:google-services:3.0.0'
build.gradle
dependencies {
..
classpath 'com.google.gms:google-services:3.0.0'
}
app\build.gradle 끝에 추가합니다.
apply plugin: 'com.google.gms.google-services'
이것은 나에게 효과가 있었습니다.
언급URL : https://stackoverflow.com/questions/37342403/firebaseapp-with-name-default-doesnt-exist
'programing' 카테고리의 다른 글
오라클에서 글로벌 임시 테이블을 피하는 방법 (0) | 2023.06.14 |
---|---|
형식 지정자 %02x (0) | 2023.06.14 |
Android Firebase, 하나의 하위 개체 데이터만 가져옵니다. (0) | 2023.06.09 |
팀 프로비저닝 프로필에 장치 추가 (0) | 2023.06.09 |
루비에서 인덱스로 매핑/수집하는 방법은 무엇입니까? (0) | 2023.06.09 |