Firebase Performance 서비스 추가 Gradle 설정 과정 참고(전이의존성 해결)

2024. 3. 12. 00:08Android/Gradle

반응형
  1. Firebase perf 추가 시 Auth어쩌구 에러 → Firebase BoM 사양에 맞춰 버전 업그레이드
  2. iid랑 messaging 서비슨가 여튼 충돌 → force 구문 주석 처리했다가 버전 업그레이드
  3. AbstractMethodException com.google.android.gms.common.Api$Client → Build.app에 있는 force 구문 google 관련 3개 버전 변경(최신으로)
  4. protobuf-lite protobuf-javalite duplicate exception → build.gradle에 configurations{ all*.exclude module:’protobuf-lite’} 추가
  5.  
Process: kr.co.zumo.app.dev, PID: 3735

    java.lang.ExceptionInInitializerError

        at com.google.crypto.tink.proto.AesSivKeyFormat.newBuilder(AesSivKeyFormat.java:133)

        at com.google.crypto.tink.daead.DeterministicAeadKeyTemplates.createAesSivKeyTemplate(DeterministicAeadKeyTemplates.java:45)

        at com.google.crypto.tink.daead.DeterministicAeadKeyTemplates.<clinit>(DeterministicAeadKeyTemplates.java:38)

        at androidx.security.crypto.EncryptedSharedPreferences$PrefKeyEncryptionScheme.<clinit>(EncryptedSharedPreferences.java:148)

        at kr.co.zumo.app.LifePlus.setEncKey(LifePlus.java:131)

        at kr.co.zumo.app.old.activity.IntroActivity$3.onSuccess(IntroActivity.java:210)

        at kr.co.zumo.app.old.activity.IntroActivity$3.onSuccess(IntroActivity.java:207)

        at kr.co.zumo.app.network.model.common.RetrofitCalback.onResponse(RetrofitCalback.java:59)

        at retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall$1$1.run(DefaultCallAdapterFactory.java:83)

        at android.os.Handler.handleCallback(Handler.java:883)

        at android.os.Handler.dispatchMessage(Handler.java:100)

        at android.os.Looper.loop(Looper.java:237)

        at android.app.ActivityThread.main(ActivityThread.java:8125)

        at java.lang.reflect.Method.invoke(Native Method)

        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)

        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)

     Caused by: java.lang.RuntimeException: Unable to get message info for com.google.crypto.tink.proto.AesSivKeyFormat

        at com.google.protobuf.GeneratedMessageInfoFactory.messageInfoFor(GeneratedMessageInfoFactory.java:62)

        at com.google.protobuf.ManifestSchemaFactory$CompositeMessageInfoFactory.messageInfoFor(ManifestSchemaFactory.java:143)

        at com.google.protobuf.ManifestSchemaFactory.createSchema(ManifestSchemaFactory.java:55)

        at com.google.protobuf.Protobuf.schemaFor(Protobuf.java:93)

        at com.google.protobuf.Protobuf.schemaFor(Protobuf.java:107)

        at com.google.protobuf.GeneratedMessageLite.makeImmutable(GeneratedMessageLite.java:171)

        at com.google.crypto.tink.proto.AesSivKeyFormat.<clinit>(AesSivKeyFormat.java:274)

        at com.google.crypto.tink.proto.AesSivKeyFormat.newBuilder(AesSivKeyFormat.java:133) 

        at com.google.crypto.tink.daead.DeterministicAeadKeyTemplates.createAesSivKeyTemplate(DeterministicAeadKeyTemplates.java:45) 

        at com.google.crypto.tink.daead.DeterministicAeadKeyTemplates.<clinit>(DeterministicAeadKeyTemplates.java:38) 

        at androidx.security.crypto.EncryptedSharedPreferences$PrefKeyEncryptionScheme.<clinit>(EncryptedSharedPreferences.java:148) 

        at kr.co.zumo.app.LifePlus.setEncKey(LifePlus.java:131) 

        at kr.co.zumo.app.old.activity.IntroActivity$3.onSuccess(IntroActivity.java:210) 

        at kr.co.zumo.app.old.activity.IntroActivity$3.onSuccess(IntroActivity.java:207) 

        at kr.co.zumo.app.network.model.common.RetrofitCalback.onResponse(RetrofitCalback.java:59) 

        at retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall$1$1.run(DefaultCallAdapterFactory.java:83) 

        at android.os.Handler.handleCallback(Handler.java:883) 

        at android.os.Handler.dispatchMessage(Handler.java:100) 

        at android.os.Looper.loop(Looper.java:237) 

        at android.app.ActivityThread.main(ActivityThread.java:8125) 

        at java.lang.reflect.Method.invoke(Native Method) 

        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496) 

        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100) 

     Caused by: java.lang.UnsupportedOperationException

        at com.google.crypto.tink.proto.AesSivKeyFormat.dynamicMethod(AesSivKeyFormat.java:266)

        at com.google.protobuf.GeneratedMessageLite.dynamicMethod(GeneratedMessageLite.java:252)

        at com.google.protobuf.GeneratedMessageLite.buildMessageInfo(GeneratedMessageLite.java:280)

        at com.google.protobuf.GeneratedMessageInfoFactory.messageInfoFor(GeneratedMessageInfoFactory.java:60)

        at com.google.protobuf.ManifestSchemaFactory$CompositeMessageInfoFactory.messageInfoFor(ManifestSchemaFactory.java:143) 

        at com.google.protobuf.ManifestSchemaFactory.createSchema(ManifestSchemaFactory.java:55) 

        at com.google.protobuf.Protobuf.schemaFor(Protobuf.java:93) 

        at com.google.protobuf.Protobuf.schemaFor(Protobuf.java:107) 

        at com.google.protobuf.GeneratedMessageLite.makeImmutable(GeneratedMessageLite.java:171) 

        at com.google.crypto.tink.proto.AesSivKeyFormat.<clinit>(AesSivKeyFormat.java:274) 

        at com.google.crypto.tink.proto.AesSivKeyFormat.newBuilder(AesSivKeyFormat.java:133) 

        at com.google.crypto.tink.daead.DeterministicAeadKeyTemplates.createAesSivKeyTemplate(DeterministicAeadKeyTemplates.java:45) 

        at com.google.crypto.tink.daead.DeterministicAeadKeyTemplates.<clinit>(DeterministicAeadKeyTemplates.java:38) 

        at androidx.security.crypto.EncryptedSharedPreferences$PrefKeyEncryptionScheme.<clinit>(EncryptedSharedPreferences.java:148) 

        at kr.co.zumo.app.LifePlus.setEncKey(LifePlus.java:131) 

        at kr.co.zumo.app.old.activity.IntroActivity$3.onSuccess(IntroActivity.java:210) 

        at kr.co.zumo.app.old.activity.IntroActivity$3.onSuccess(IntroActivity.java:207) 

        at kr.co.zumo.app.network.model.common.RetrofitCalback.onResponse(RetrofitCalback.java:59) 

        at retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall$1$1.run(DefaultCallAdapterFactory.java:83) 

        at android.os.Handler.handleCallback(Handler.java:883) 

        at android.os.Handler.dispatchMessage(Handler.java:100) 

        at android.os.Looper.loop(Looper.java:237) 

        at android.app.ActivityThread.main(ActivityThread.java:8125) 

        at java.lang.reflect.Method.invoke(Native Method) 

        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496) 

        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)  

→ build.gradle에 configurations{ all*.exclude module:’protobuf-javalite’} 변경

→ 해결(완벽한 상태는 아니지만..)

 

 

+ 과장님의 추가적인 업무(javalite 사용 권장에 따라 종속성 파악해 재해결해보라)

  1. External Library 클래스 확인 : Project창에서 Project로 단위를 바꾸고(App으로 되어있다면..) 에러 로그에 있는 .java 클래스가 있는지 확인
  2. Gradle dependency 확인 : Gradle창에서 AppName > Tasks > android를 펼치고 androidDependencies를 더블클릭해 의존성 확인 → androidx.security에만 protobuf-lite 쓰이길래 아래 내용 추가
  3. Androidx.security rc01인가 해당 lite buf를 사용하지 않는 버전이 있어 해당 버전으로 변경
implementations (Android.security~){
	Transitive = true
    // 종속된 모듈 배제가 맞음(javalite 배제가 아니라)
    Exclude group : ‘com.google.protobuf’, module:’protobuf-lite’ 
 }

 

반응형