1. 오류 내용
ERROR: Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in ~/build/app/outputs/mapping/release/missing_rules.txt.
R8이라는 Andorid 앱 최적화 과정에서 클래스가 누락되어 발생하는 오류이다.
ERROR: R8: Missing class com.google.android.gms.safetynet.SafetyNet (referenced from: void com.google.firebase.appcheck.safetynet.internal.SafetyNetAppCheckProvider.lambda$initSafetyNetClient$0(com.google.android.gms.common.GoogleApiAvailability, android.content.Context, com.google.android.gms.tasks.TaskCompletionSource))
Missing class com.google.android.gms.safetynet.SafetyNetApi$AttestationResponse (referenced from: com.google.android.gms.tasks.Task com.google.firebase.appcheck.safetynet.internal.SafetyNetAppCheckProvider.exchangeSafetyNetAttestationResponseForToken(com.google.android.gms.safetynet.SafetyNetApi$AttestationResponse) and 1 other context)
Missing class com.google.android.gms.safetynet.SafetyNetClient (referenced from: com.google.android.gms.tasks.Task com.google.firebase.appcheck.safetynet.internal.SafetyNetAppCheckProvider.getToken() and 2 other contexts)
이어진 오류에는 이렇게 써있었다.
요약하면 R8과정에서
com.google.android.gms.safetynet.SafetyNet,
com.google.android.gms.safetynet.SafetyNetApi$AttestationResponse, com.google.android.gms.safetynet.SafetyNetClient
클래스를 찾을 수 없다는 것.
R8은 Android 애플리케이션의 코드 축소, 난독화(애플리케이션의 코드를 해석하기 어렵게 만들어 보안을 강화) 및 최적화를 위한 도구다. ProGuard의 대안으로 개발되었으며, Android Gradle 플러그인에서 기본적으로 사용된다.
때로는 사용자가 직접 R8의 동작을 제어하기 위해 keep 규칙을 추가해야 할 수도 있다.
2. 해결방법
2-1. gradle.properties 메모리 사용량 조정
org.gradle.jvmargs=-Xms2048m -Xmx4096m
이 코드를 추가하면, Gradle 빌드 중 최소 2048MB에서 최대 4096MB까지 증가하도록 설정된다.
2-2. Proguard-rules.pro 수정
~/build/app/outputs/mapping/release/missing_rules.txt 경로로 들어가서 해당 파일을 열어보면,
- dontwarm ~~~ 이렇게 써있는게 보일 것이다.
이 내용을 복사한다.
그리고 andorid/app/proguard-rules.pro 파일을 찾아서 복사한 내용을 붙여넣기 한다.
terminal에서 Android 폴더로 경로를 맞춘 후 아래 코드로 프로젝트를 재시작한다.
./gradlew clean
./gradlew build
'추천시스템 앱 개발 > 오류' 카테고리의 다른 글
[Flutter 오류] Set the 'program' value in your launch config (eg 'lib/main.dart') then launch again (0) | 2024.10.08 |
---|---|
[GoogleOAuth 오류] Google에서 확인하지 않은 앱 (0) | 2024.05.12 |
댓글