programing

이름이 [DEFAULT]인 FirebaseApp이 없습니다.

css3 2023. 6. 9. 22:19

이름이 [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'

안드로이드 스튜디오

  1. 플러그인 적용: 'com.google.gms.google-services'(build.gradle - 모듈 계층)
  2. 메뉴~>구축~>프로젝트 정리

나한테 효과가 있어, ok.

파이어베이스에 애플리케이션을 등록하고 구글-services.json을 루트 프로젝트에 복사합니다.

적용합니다.classpath 'com.google.gms:google-services:3.1.0root 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