添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
坚强的领结  ·  AndroidアプリのToolbar gra ...·  7 小时前    · 
帅气的稀饭  ·  Gradle version error ...·  7 小时前    · 
重感情的板凳  ·  SonarCloud not ...·  7 小时前    · 
斯文的佛珠  ·  Android Studio ...·  昨天    · 
深情的围巾  ·  穆禾禾_百度百科·  1 周前    · 
耍酷的骆驼  ·  How to load and ...·  1 周前    · 
文质彬彬的海豚  ·  ENOENT (No such file ...·  2 月前    · 

안드로이드 스튜디오에서 내부 소스 코드를 보려고 할 때 위 처럼 모든 구현부가 RuntimeException 을 던지는 파일이 나올 때가 있다.

throw new RuntimeException("Stub!");

메시지 내용은 다음과 같다.

Decompiled .class file, bytecode version: 52.0 (Java 8)
Sources for 'Android API 30 Platform' not found.

이 문제는 안드로이드 API 버전에 해당하는 Source가 다운로드 되어 있지 않아서 발생 한 것이다.

여기서 두 번째 "Sources for 'Android API 30 Platform' not found." 메시지는 안드로이드 API 30 버전의 Source가 없으니 다운로드를 하라는 메시지이다. 하지만 현재 30 버전의 소스코드는 공개되지 않은 상태이기 때문에 다운로드 받을 수 없다.

이를 위해 Android 버전을 29로 내려야 한다 .

그 방법은 앱 모듈의 gradle 파일 - build.gradle(Module: app) - 의 compileSdkVersion을 29로 설정한다.

그 때 아래와 같이 컴파일 에러가 발생할 수도 있다.

이는 targetSdkVersion보다 compileSdkVersion이 낮을 수 없기 때문인데, 이는 Gradle 호환성과 관련이 있다. 해결 방법은 2가지가 있다.

첫 번째 방법은 targetSdkVersion을 맞춘다.

android {
    compileSdkVersion 29
    defaultConfig {
        targetSdkVersion 29

두 번째 방법은 주석을 추가해서 Gradle 호환성 문제를 검사하지 말라고 컴파일러에게 알려준다.

android {
    // noinspection GradleCompatible
    compileSdkVersion 29

이제 API 29에 해당하는 Source가 있는지 확인한다.

안드로이드 스튜디오에 [Preferences] (Windows에서는 [Settings]) 에서 [Android Sdk]로 들어간다.

아래 체크박스에 show Package Details 체크해서 Sources for Android 29가 Installed 되었는지 확인한다.