Skip to content

[Fix] OSS Licenses 크래시 방지#489

Open
HI-JIN2 wants to merge 6 commits intodevelopfrom
fix/oss-licenses-startup-crash
Open

[Fix] OSS Licenses 크래시 방지#489
HI-JIN2 wants to merge 6 commits intodevelopfrom
fix/oss-licenses-startup-crash

Conversation

@HI-JIN2
Copy link
Member

@HI-JIN2 HI-JIN2 commented Mar 4, 2026

Summary

재현 안됨

  • play-services-oss-licenses 내부 NPE(zzg.zzc) 방지를 위해 라이브러리/플러그인을 최신으로 업데이트했어요.
  • OSS 라이선스 리소스 누락/리소스 shrink 상황에서 화면 진입을 막고 안내 토스트를 띄워요.

Describe your changes

  • github action Install Android SDK (API 35) 추가
  • MyPageFragment.kt: raw 리소스 존재 확인 후 OssLicensesMenuActivity 실행
  • app/src/main/res/raw/keep.xml: third_party_licenses, third_party_license_metadata 리소스 shrink 방지
  • 불필요한 core/common/ 모듈의 google-services 플러그인 적용 제거

Issue

To reviewers

  • 3rd party 내부 크래시라 원인 pinpoint가 어려워 업데이트 + 방어 로직 위주로 처리했어요.
  • AGP 업그레이드하려고 했으나 포기하고(=안정화 우선) 로컬/CI 모두 “정상 빌드” 상태로 맞춰놨어요. 지금 ./gradlew build, :app:assembleDebug, :app:assembleRelease까지 전부 성공합니다. AGP 업데이트 해야할 것 같기한데 계속 실패하네요 🥹

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 Pull Request는 OSS 라이선스 관련 기능의 안정성을 강화하는 데 중점을 둡니다. 주요 변경 사항은 OSS 라이선스 라이브러리 및 플러그인 버전을 업데이트하고, 라이선스 리소스가 올바르게 로드되지 않을 경우 발생할 수 있는 크래시를 방지하기 위한 방어 로직을 추가하는 것입니다. 또한, 관련 활동의 매니페스트 설정을 조정하고, 리소스 Shrink으로 인한 문제를 예방하기 위한 설정을 포함하여 사용자 경험을 개선하고 잠재적인 런타임 오류를 줄입니다.

Highlights

  • OSS 라이선스 라이브러리 업데이트: play-services-oss-licenses 라이브러리와 관련 플러그인을 최신 버전(17.4.0 및 0.10.10)으로 업데이트하여 내부 NPE(zzg.zzc) 크래시를 방지했습니다.
  • OSS 라이선스 화면 진입 방어 로직 추가: OSS 라이선스 리소스(third_party_licenses, third_party_license_metadata)가 누락되거나 리소스 Shrink으로 인해 제거된 경우, 화면 진입을 막고 사용자에게 안내 토스트 메시지를 표시하도록 MyPageFragment.kt에 로직을 추가했습니다.
  • AndroidManifest.xml 설정 변경: OssLicensesMenuActivity 및 OssLicensesActivity에 noHistory, excludeFromRecents, exported 속성을 추가하여 활동 관리 방식을 개선했습니다.
  • 리소스 Shrink 방지 설정 추가: app/src/main/res/raw/keep.xml 파일을 새로 추가하여 third_party_licenses 및 third_party_license_metadata 리소스가 ProGuard/R8에 의해 제거되지 않도록 명시적으로 유지하도록 설정했습니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • app/src/main/AndroidManifest.xml
    • OssLicensesMenuActivity 및 OssLicensesActivity에 noHistory, excludeFromRecents, exported 속성을 추가했습니다.
  • app/src/main/java/com/eatssu/android/presentation/mypage/MyPageFragment.kt
    • OSS 라이선스 리소스 존재 여부를 확인하는 로직을 추가했습니다.
    • 리소스가 없을 경우 토스트 메시지를 표시하고 화면 진입을 막도록 변경했습니다.
    • OssLicensesMenuActivity를 시작할 때 FLAG_ACTIVITY_NO_HISTORY 플래그를 추가했습니다.
  • app/src/main/res/raw/keep.xml
    • third_party_licenses 및 third_party_license_metadata 리소스가 제거되지 않도록 tools:keep 속성을 사용하여 새 파일을 추가했습니다.
  • gradle/libs.versions.toml
    • ossLicenses 버전을 17.3.0에서 17.4.0으로 업데이트했습니다.
    • ossLicensesPlugin 버전을 0.10.6에서 0.10.10으로 업데이트했습니다.
Activity
  • 현재까지 이 Pull Request에 대한 사람의 활동(댓글, 리뷰 등)은 없습니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

PR 제목과 설명에 따라 OSS 라이선스 관련 크래시 방지를 위한 라이브러리 업데이트 및 방어 로직 추가가 잘 반영되었습니다. 특히, 리소스 누락 시 토스트 메시지를 통해 사용자에게 안내하고, Manifest 파일에 noHistoryexcludeFromRecents 속성을 추가하여 사용자 경험을 개선한 점이 좋습니다. keep.xml 파일을 추가하여 리소스 shrink를 방지한 것도 중요한 개선 사항입니다.

@HI-JIN2 HI-JIN2 self-assigned this Mar 4, 2026
@HI-JIN2 HI-JIN2 requested a review from PeraSite March 4, 2026 06:06
@HI-JIN2 HI-JIN2 marked this pull request as draft March 4, 2026 06:07
@HI-JIN2 HI-JIN2 changed the title fix: OSS Licenses 크래시 방지 [Fix] OSS Licenses 크래시 방지 및 AGP 8.9.1, compileSdk 36로 업그레이드 Mar 4, 2026
@HI-JIN2 HI-JIN2 changed the title [Fix] OSS Licenses 크래시 방지 및 AGP 8.9.1, compileSdk 36로 업그레이드 [Fix] OSS Licenses 크래시 방지 Mar 5, 2026
@HI-JIN2 HI-JIN2 marked this pull request as ready for review March 5, 2026 01:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

오픈소스라이브러리 OSS뷰 클래스 별도 생성

1 participant