Android 스튜디오 Arctic Fox | 2020.3.1(2021년 7월)

Android 스튜디오 Arctic Fox는 다양한 새 기능과 개선사항이 포함된 주 버전입니다.

새 버전 번호 지정 체계

Android 스튜디오의 버전 번호 지정 체계 업데이트

Android 스튜디오의 버전 번호 지정 체계가 Android 스튜디오의 기반이 되는 IDE인 IntelliJ IDEA와 더 일치하도록 변경되었습니다.

이전 번호 지정 체계에서는 이 버전이 Android 스튜디오 4.3이나 버전 4.3.0.1이었을 것입니다. 새로운 번호 지정 체계에 따르면 이제 Android 스튜디오 - Arctic Fox | 2020.3.1 또는 버전 2020.3.1입니다.

Intellij 버전 기존 이름 기존 - 번호 시스템 신규 - 연도 시스템 새 버전 이름
2020.3 4.3 4.3.0 2020.3.1 Arctic Fox | 2020.3.1

앞으로 Android 스튜디오의 버전 번호는 다음과 같은 방식으로 결정됩니다.

<Year of IntelliJ Version>.<IntelliJ major version>.<Studio major version>.<Studio minor/patch version>

  • 처음 두 숫자 그룹은 특정 Android 스튜디오 버전이 기반하는 Intellij 플랫폼의 버전을 나타냅니다. 이번 출시의 경우 버전 2020.3입니다.
  • 세 번째 숫자 그룹은 스튜디오 주 버전을 나타내며 1부터 시작하여 주 버전이 출시될 때마다 1씩 증가합니다.
  • 네 번째 숫자 그룹은 스튜디오 부/패치 버전을 나타내며 1부터 시작하여 부 버전이 출시될 때마다 1씩 증가합니다.
  • 각 주 버전에 버전 이름도 부여하며 동물 이름에 따라 A부터 Z까지 증가합니다. 이번 버전의 이름은 Arctic Fox입니다.

Android Gradle 플러그인의 버전 번호 지정 체계 업데이트

기본 Gradle 빌드 도구와 더 일치하도록 Android Gradle 플러그인(AGP)의 버전 번호 지정 체계를 변경했습니다. 따라서 AGP 4.2 이후의 다음 출시 버전은 AGP 7.0입니다.

자세한 내용은 AGP 출시 노트에서 버전 관리 변경사항을 참고하세요.

Android Gradle 플러그인 7.0.0

최신 버전의 Android Gradle 플러그인에는 많은 업데이트가 포함되어 있습니다. 자세한 내용은 전체 Android Gradle 플러그인 출시 노트를 참고하세요.

이제 단위 테스트에서 Gradle 테스트 실행기 사용

전반적인 테스트 실행의 일관성을 개선하기 위해 Android 스튜디오에서는 이제 기본적으로 Gradle을 사용하여 모든 단위 테스트를 실행합니다. 대부분의 경우 이 변경사항은 IDE의 테스트 워크플로에 영향을 주지 않습니다.

예를 들어 컨텍스트 메뉴(테스트 클래스를 마우스 오른쪽 버튼으로 클릭하면 표시됨)에서 Run 명령어나 이에 상응하는 거터 작업 을 클릭하면 Android 스튜디오는 기본적으로 Gradle 실행 구성을 사용하여 단위 테스트를 실행합니다.

테스트 실행을 위한 컨텍스트 메뉴

그러나 Android 스튜디오는 더 이상 기존 Android JUnit 실행 구성을 인식하지 못하므로 프로젝트 파일로 저장할 수 있는 Android JUnit 실행 구성을 Gradle 실행 구성으로 이전해야 합니다.

Gradle 테스트 구성을 만들려면 새 실행/디버그 구성 만들기의 안내에 따라 Gradle 템플릿을 선택합니다. 새 구성을 만들면 Gradle 섹션의 Edit Configurations 대화상자에 표시됩니다.

Android 스튜디오에서 테스트 구성 수정

더 이상 인식되지 않는 Android JUnit 구성을 검사하려면 다음 두 가지 중 하나를 실행하면 됩니다.

  • 텍스트 편집기에서 저장된 구성을 수동으로 엽니다. 이러한 파일의 위치는 사용자가 지정하지만 파일은 일반적으로 <my-app>/.idea/runConfigurations/에 표시됩니다.
  • <my-app>/.idea/workspace.xml에서 임시 구성을 찾고 <component name="RunManager" ...> 노드 아래를 확인합니다. 예를 들면 다음과 같습니다.

    <component name="RunManager" selected="Gradle.PlantTest">
    
    <configuration name="PlantTest" type="AndroidJUnit" factoryName="Android JUnit" nameIsGenerated="true">
          <module name="Sunflower.app" />
          <useClassPathOnly />
          <extension name="coverage">
            <pattern>
              <option name="PATTERN" value="com.google.samples.apps.sunflower.data.*" />
              <option name="ENABLED" value="true" />
            </pattern>
          </extension>
          <option name="PACKAGE_NAME" value="com.google.samples.apps.sunflower.data" />
          <option name="MAIN_CLASS_NAME" value="com.google.samples.apps.sunflower.data.PlantTest" />
          <option name="METHOD_NAME" value="" />
          <option name="TEST_OBJECT" value="class" />
          <option name="PARAMETERS" value="" />
          <option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
          <method v="2">
            <option name="Android.Gradle.BeforeRunTask" enabled="true" />
          </method>
        </configuration>
    

AGP용 업그레이드 어시스턴트 개선

이제 Android Gradle 플러그인용 업그레이드 어시스턴트에 완료할 단계 목록이 포함된 영구 도구 창이 있습니다. 도구 창의 오른쪽에 추가 정보도 표시됩니다. 필요한 경우 업그레이드할 다른 버전의 AGP를 선택할 수도 있습니다. Refresh 버튼을 클릭하면 해당하는 업데이트 단계가 업데이트됩니다.

업그레이드 어시스턴트의 새로운 영구 도구 창

비전환 R 클래스 리팩터링

Android Gradle 플러그인과 함께 비전환 R 클래스를 사용하여 여러 모듈이 있는 애플리케이션을 위한 더 빠른 빌드를 구현할 수 있습니다. 이렇게 하면 종속 항목에서 참조를 가져오지 않고 각 모듈의 R 클래스에 자체 리소스 참조만 포함되도록 하여 리소스 중복을 방지할 수 있습니다. 그러면 더욱 최신 빌드를 만들 수 있고 그에 따른 컴파일 방지의 이점을 누릴 수 있습니다.

Refactor > Migrate to Non-transitive R Classes로 이동하여 이 기능에 액세스할 수 있습니다.

새로운 Background Task Inspector

새로운 Background Task Inspector를 사용하여 앱의 백그라운드 worker를 시각화, 모니터링, 디버그할 수 있습니다. 시작하려면 WorkManager 라이브러리 2.5.0 이상을 실행하는 기기에 앱을 배포하고 메뉴 바에서 View > Tool Windows > App Inspection을 선택합니다.

Background Task Inspector의 활성 worker

worker를 클릭하면 자세한 정보를 볼 수 있습니다. 예를 들어 worker에 관한 설명, worker가 실행된 방식, worker 체인 세부정보, 실행 결과를 볼 수 있습니다.

Worker Details 탭

worker 체인을 시각적으로 확인하려면 테이블에서 worker를 선택하고 툴바에서 Show Graph View 를 클릭합니다. 그런 다음 체인에 있는 worker를 선택하여 세부정보를 확인하거나 현재 대기 중 또는 실행 중인 worker를 중지할 수 있습니다. 테이블로 돌아가려면 Show List View 를 클릭합니다.

Background Task Inspector worker 체인

실행에 실패한 worker의 문제를 조사할 때는 현재 실행 중이거나 대기 중인 worker를 중지할 수 있습니다. 테이블에서 worker를 선택하고 툴바에서 Cancel Selected Worker 를 클릭하면 됩니다. 또한 All tags 드롭다운 메뉴를 사용하여 worker에 할당한 태그별로 테이블의 worker를 필터링할 수 있습니다.

Database Inspector 업데이트

이제 Database Inspector가 새로운 App Inspection 도구 창에 포함되며 여기서 새로운 Background Task Inspector를 확인할 수도 있습니다. 도구 창 모음에서 App Inspection 도구 창을 열거나 메뉴 바에서 View > Tool Windows > App Inspection을 선택합니다.

Database Inspector에서 데이터 내보내기

Arctic Fox에서는 Database Inspector의 데이터베이스, 테이블, 쿼리 결과를 손쉽게 내보내 로컬에 저장, 공유, 재생성할 수 있습니다. Android 스튜디오에서 앱 프로젝트를 열고 Database Inspector에서 프로젝트의 앱을 검사하면 다음 방법 중 하나로 데이터 내보내기를 시작할 수 있습니다.

  • Databases 패널에서 데이터베이스나 테이블을 선택하고 패널 상단에 있는 Export to file을 클릭합니다.
  • Databases 패널에서 데이터베이스나 테이블을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 Export to file을 선택합니다.
  • 탭에서 테이블이나 쿼리 결과를 검사할 때 테이블이나 쿼리 결과 위쪽에서 Export to file을 클릭합니다.

내보내기 작업을 선택한 후에 아래와 같이 Export 대화상자를 사용하여 최종 단계를 진행합니다. 데이터베이스, 테이블, 쿼리 결과 중 어느 것을 내보내려고 하는지에 따라 DB, SQL, CSV 중 한 가지 이상의 형식으로 데이터를 내보낼 수 있습니다.

Export Database 대화상자

메모리 프로파일러의 기록을 위한 UI 업데이트

힙 덤프를 캡처하고 자바, Kotlin, 네이티브 메모리 할당을 기록하는 등의 다양한 기록 활동을 위해 메모리 프로파일러 사용자 인터페이스(UI)를 통합했습니다.

메모리 할당이 메모리 프로파일러에 표시됨

메모리 프로파일러는 다음 옵션을 제공합니다.

  • Capture heap dump: 앱에서 특정 시점에 메모리를 사용 중인 객체를 확인합니다.
  • Record native allocations: 일정 기간 동안 각 C/C++ 객체가 할당된 방식을 확인합니다.
  • Record Java/Kotlin allocations: 일정 기간 동안 각 자바/Kotlin 객체가 할당된 방식을 확인합니다.

세 옵션을 사용하는 방법은 다음과 같습니다.

  • 힙 덤프를 캡처하려면 Capture heap dump를 선택한 다음 Record를 선택합니다. 프로파일러가 힙 덤프를 캡처한 후에는 메모리 프로파일러 UI가 힙 덤프를 표시하는 별도의 화면으로 전환됩니다.

    메모리 프로파일러의 힙 덤프 샘플

  • Android 10 이상을 실행하는 기기에서 네이티브 할당을 기록하려면 Record native allocations를 선택한 다음 Record를 선택합니다. 기록은 Stop 을 클릭할 때까지 계속됩니다. 클릭한 후에는 메모리 프로파일러 UI가 네이티브 기록을 표시하는 별도의 화면으로 전환됩니다.

    Android 9 이하에서는 Record native allocations 옵션을 사용할 수 없습니다.

  • 자바 및 Kotlin 할당을 기록하려면 Record Java / Kotlin allocations를 선택한 다음 Record를 선택합니다. 기기에서 Android 8 이상을 실행 중이면 메모리 프로파일러 UI가 진행 중인 기록을 표시하는 별도의 화면으로 전환됩니다. 기록 위에 있는 미니 타임라인과 상호작용할 수 있습니다(예: 선택 범위 변경). 기록을 완료하려면 Stop 을 선택합니다.

    메모리 프로파일러의 자바 할당 시각화

    Android 7.1 이하에서는 메모리 프로파일러가 레거시 할당 기록을 사용하여 Stop을 클릭할 때까지 타임라인에 기록을 표시합니다.

연결된 C++ 프로젝트 새로고침 업데이트

구성과 관련 없는 파일을 .cxx/ 폴더에서 build/ 폴더로 이동했습니다. CMake C++ 빌드에는 컴파일 및 링크 단계를 실행하는 데 사용되는 닌자 프로젝트를 생성하는 구성 단계가 필요합니다. CMake로 생성된 프로젝트는 생성하는 데 비용이 많이 들고 Gradle 정리에서 그대로 유지될 것으로 예상됩니다. 이런 이유로 이 프로젝트는 build/ 폴더 옆의 .cxx/ 폴더에 저장됩니다. 일반적으로 Android Gradle 플러그인은 구성 변경사항을 감지하고 자동으로 닌자 프로젝트를 다시 생성합니다. 하지만 모든 사례를 감지할 수는 없습니다. 감지하지 못한 경우 'Refresh Linked C++ Project' 옵션을 사용하여 수동으로 닌자 프로젝트를 다시 생성할 수 있습니다.

다중 기기 테스트를 위한 새로운 테스트 매트릭스

이제 계측 테스트를 여러 기기에서 동시에 실행할 수 있으며 전문 계측 테스트 결과 패널을 사용하여 조사할 수 있습니다. 이 패널을 사용하면 API 수준이나 하드웨어 속성으로 인해 테스트가 실패하는지 판단할 수 있습니다.

계측 테스트 패널

다양한 API 수준과 폼 팩터에서 앱을 테스트하는 것은 모든 사용자에게 만족스러운 앱 사용 환경을 제공하는 가장 좋은 방법 중 하나입니다.

이 기능을 활용하려면 다음 단계를 따르세요.

  1. 대상 기기 드롭다운 메뉴(IDE 상단 중앙)에서 Select Multiple Devices를 선택합니다.

    기기 세트 수정 대화상자

  2. 대상 기기를 선택하고 OK를 클릭합니다.

    기기 세트 수정 대화상자

  3. 테스트를 실행합니다.

Run 패널에서 테스트 결과를 보려면 View > Tool Windows > Run으로 이동합니다.

새 테스트 결과 패널을 사용하여 테스트 결과를 상태, 기기, API 수준별로 필터링할 수 있습니다. 또한 헤더를 클릭하여 각 열을 정렬할 수 있습니다. 개별 테스트를 클릭하여 각 기기의 로그 및 기기 정보를 개별적으로 확인할 수 있습니다.

데이터 결합의 StateFlow 지원

코루틴을 사용하는 Kotlin 앱의 경우 이제 StateFlow 객체를 데이터 결합 소스로 사용하여 데이터 변경을 UI에 자동으로 알릴 수 있습니다. 데이터 결합은 수명 주기를 인식하며 UI가 화면에 표시될 때만 실행됩니다.

결합 클래스와 함께 StateFlow 객체를 사용하려면 수명 주기 소유자를 지정하여 StateFlow 객체의 범위를 정의하고, 다음 예와 같은 결합 표현식을 사용하여 레이아웃에서 ViewModel 구성요소의 속성 및 메서드를 상응하는 뷰에 할당해야 합니다.

class ViewModel() {
   val username: StateFlow<String>
}
<TextView
    android:id="@+id/name"
    android:text="@{viewmodel.username}" />

AndroidX를 사용하는 Kotlin 앱의 경우 StateFlow 지원이 코루틴 종속성을 포함한 데이터 결합 기능에 자동으로 포함됩니다.

자세한 내용은 식별 가능한 데이터 객체 작업을 참고하세요.

추천 가져오기 개선

추천 가져오기 기능이 지원하는 라이브러리의 수를 개선했으며 색인을 더 자주 업데이트합니다. 추천 가져오기를 사용하면 특정 Google Maven 아티팩트를 클래스 및 Gradle 프로젝트로 쉽고 빠르게 가져올 수 있습니다. Android 스튜디오가 특정 Google 라이브러리에서 확인되지 않은 기호를 감지하면 IDE는 클래스와 프로젝트 모두로 라이브러리를 가져오도록 추천합니다.

빌드 분석 도구의 구성 캐시 지원

이제 빌드 분석 도구는 프로젝트에 구성 캐시가 사용 설정되지 않은 경우 이를 식별하여 최적화를 제공합니다. 빌드 분석 도구는 호환성 평가를 실행하여 구성 캐시를 사용 설정하기 전에 프로젝트에서 구성 캐시에 문제가 있는지 여부를 알려줍니다.

빌드 분석 도구의 구성 캐시 정보

Jetpack Compose 도구 지원

이제 Jetpack Compose를 사용하는 앱을 미리 보고 테스트하는 지원이 추가됩니다. Jetpack Compose로 최적의 환경에서 개발하려면 새 프로젝트 템플릿 및 즉시 Compose UI 미리보기 기능과 같은 스마트 편집기 기능을 활용할 수 있도록 최신 버전의 Android 스튜디오 Arctic Fox를 사용해야 합니다.

Compose 미리보기

이제 @Preview 메서드에 다음 매개변수를 사용할 수 있습니다.

  • showBackground: 미리보기의 백그라운드를 사용 설정 또는 사용 중지합니다.
  • backgroundColor: 미리보기 표시 영역에서만 사용되는 색상을 설정합니다.
  • uiMode: 이 새 매개변수는 어떤 Configuration.UI_* 상수나 사용할 수 있고 이 매개변수로 미리보기 동작을 변경(예: 야간 모드로 설정)하여 테마가 어떻게 반응하는지 확인할 수 있습니다.

Compose 미리보기 UI

양방향 미리보기

이 기능을 사용하면 UI 구성요소와 상호작용하고, 구성요소를 클릭하여 상태가 어떻게 변경되는지 확인할 수 있습니다. UI가 반응하는 방식에 관한 의견을 얻고 애니메이션을 미리 보는 간편한 방법입니다. 사용 설정하려면 양방향 아이콘 을 클릭하세요. 그러면 미리보기가 모드를 전환합니다.

중지하려면 상단 툴바에서 Stop Interactive Preview를 클릭합니다.

양방향 미리보기 UI

기기에 배포

이 기능을 사용하면 UI 스니펫을 기기에 배포할 수 있습니다. 이렇게 하면 전체 애플리케이션을 시작할 필요 없이 기기에서 코드의 작은 부분을 테스트할 수 있습니다.

@Preview 주석 옆이나 미리보기 상단에 있는 Deploy to Device 아이콘 을 클릭하면 Android 스튜디오에서 연결된 기기나 에뮬레이터에 @Preview를 배포합니다.

리터럴 실시간 편집

Compose를 사용하는 개발자가 코드에서 리터럴(문자열, 숫자, 부울)을 빠르게 편집하고 컴파일을 기다릴 필요 없이 결과를 즉시 확인할 수 있도록 리터럴 실시간 편집 기능을 추가했습니다. 이 기능의 목표는 코드 변경사항이 미리보기, 에뮬레이터, 실제 기기에 거의 즉시 표시되도록 하여 생산성을 높이는 것입니다.

숫자 및 문자열 업데이트를 미리보기 및 기기에서 즉시 편집

Layout Inspector의 Compose 지원

Layout Inspector를 사용하면 연결된 기기에서 실행 중인 앱의 레이아웃에 관한 다양한 세부정보를 볼 수 있습니다. 앱과 상호작용하고 도구에서 실시간 업데이트를 확인하여 발생할 수 있는 문제를 빠르게 디버그할 수 있습니다.

새로운 Android 선언형 UI 프레임워크인 Jetpack Compose로 작성된 레이아웃을 검사할 수 있습니다. 앱이 Compose로 완전히 작성된 레이아웃을 사용하든 Compose와 Views의 하이브리드를 사용하는 레이아웃을 사용하든 Layout Inspector를 사용하면 실행 중인 기기에서 레이아웃이 렌더링되는 방식을 이해할 수 있습니다.

시작하기

시작하려면 연결된 기기에 앱을 배포한 다음 View > Tool Windows > Layout Inspector를 선택하여 Layout Inspector 창을 엽니다. Layout Inspector가 앱 프로세스에 자동으로 연결되지 않으면 프로세스 풀다운에서 원하는 앱 프로세스를 선택합니다. 곧 도구 창에서 앱 레이아웃이 렌더링됩니다. Compose 레이아웃 검사를 시작하려면 렌더링에 표시되는 레이아웃 구성요소를 선택하거나 Component Tree에서 구성요소를 선택합니다.

Layout Inspector UI

Attributes 창에는 현재 선택된 Compose 함수에 관한 자세한 정보가 표시됩니다. 이 창에서 수정자와 람다 표현식을 포함하여 함수의 매개변수와 값을 검사할 수 있습니다. 람다 표현식의 경우 검사기는 소스 코드 내의 표현식으로 이동하는 데 도움이 되는 바로가기를 제공합니다.

Layout Inspector는 호출 스택에서 앱의 레이아웃에 구성요소를 내보내는 모든 Compose 함수를 보여줍니다. 대부분의 경우 Compose 라이브러리에서 내부적으로 호출되는 Compose 함수가 포함됩니다. 앱이 직접 호출하는 Compose 함수만 Component Tree에서 보려면 필터 작업을 클릭합니다. 그러면 트리에 표시되는 노드 수를 검사하려는 노드로 줄일 수 있습니다.

배포 드롭다운 개선

이제 기기 드롭다운은 선택한 기기 설정 내의 다양한 종류의 오류를 구분합니다. 이제 아이콘과 변경된 스타일이 오류(구성 손상을 초래하는 기기 선택)와 경고(예기치 않은 동작을 초래할 수 있지만 여전히 실행 가능한 기기 선택)를 구분합니다.

또한 이제 오류나 경고와 관련 있는 기기로 프로젝트를 시작하려고 하면 Android 스튜디오에서 경고를 표시합니다.

새로운 Wear OS 페어링 어시스턴트

새로운 Wear OS 페어링 어시스턴트를 통해 개발자는 Android 스튜디오에서 직접 단계별로 Wear OS 에뮬레이터를 실물 휴대전화나 가상 전화와 페어링할 수 있습니다. 어시스턴트를 사용하면 휴대전화에 정확한 Wear OS 호환 앱을 설치하고 두 기기 사이의 연결을 설정할 수 있습니다. 기기 드롭다운 > Wear OS Emulator Pairing Assistant로 이동하여 시작할 수 있습니다.

Wear OS 페어링 어시스턴트 데모

반응형 레이아웃 템플릿

이제 Android 스튜디오 Arctic Fox에는 휴대전화, 폴더블, 태블릿, 화면 분할 모드와 같은 다양한 디스플레이 크기 및 앱 크기 조절에 맞게 조정되는 새로운 레이아웃 템플릿이 포함됩니다. 새 프로젝트나 모듈을 만들 때 반응형 활동 템플릿을 선택하면 동적으로 크기가 조절되는 구성요소가 있는 레이아웃을 만들 수 있습니다.

작은 화면의 반응형 레이아웃 템플릿 중간 화면의 반응형 레이아웃 템플릿 큰 화면의 반응형 레이아웃 템플릿

시작하려면 File > New로 이동하여 New ProjectNew Module을 선택하고 Responsive Activity 템플릿을 선택합니다.

새 프로젝트 마법사의 반응형 레이아웃 템플릿

Layout Editor용 접근성 검사기

레이아웃의 접근성 문제를 찾을 수 있도록 Android 스튜디오에 Android 접근성 테스트 프레임워크를 통합했습니다. 이 도구는 접근성 관련 문제를 보고하고 일반적인 문제(예: 누락된 콘텐츠 설명, 낮은 대비)의 해결 방법을 제안합니다. 패널을 실행하려면 Layout Editor에서 error report 버튼 을 클릭하세요.

접근성 검사기 데모

Apple silicon 지원

이제 Apple silicon(arm64) 하드웨어 아키텍처(상응하는 에뮬레이터 시스템 이미지 포함)를 실행할 때 Android 스튜디오와 Android Emulator에 핵심 개발자 워크플로 초기 지원이 포함됩니다.

일부 SDK 및 NDK 명령줄 도구에서는 아직 지원되지 않습니다. 일부 도구를 실행하려면 컴퓨터에서 Rosetta 2를 실행해야 할 수 있습니다.

Apple silicon 지원

Arctic Fox의 알려진 문제

이 섹션에서는 Android 스튜디오 Arctic Fox의 현재 알려진 문제를 설명합니다.

Windows v3.6-v4.1에서 패치가 작동하지 않음

Windows 플랫폼 v3.6~v4.1에서 Android 스튜디오 Arctic Fox 안정화 버전 패치가 작동하지 않을 수 있습니다.

패치 출시

다음은 Android 스튜디오 Arctic Fox의 패치 출시입니다.

Android 스튜디오 Arctic Fox | 2020.3.1 패치 4(2021년 12월)

이번 소규모 업데이트는 다음과 같은 버그 수정을 포함합니다.

  • Android Gradle 플러그인
    • VariantOutput.versionProvider 설정 작업이 구성 캐시로 인해 중단될 수 있습니다.
    • 출시 서명 시 gradeResValues.xml이 업데이트되지 않습니다.
  • D8/R8
    • R8로 축소된 빌드의 클래스 생성자에서 java.lang.ClassCastException이 발생합니다.
    • dex 병합 중에 연결할 수 없는 유형 조정이 발생합니다.
    • java.lang.VerifyError: Reference.java.lang.Object 유형의 객체에서 인스턴스 필드에 액세스할 수 없어 인증 도구에서 인증이 되지 않습니다.
  • 린트
    • MediaCapabilities 린트 검사를 중지합니다.
    • shrinkResources가 사용 설정되면 린트에서 거짓양성 [인스턴트화 가능] 오류를 보고합니다.
  • 템플릿
    • Import Module 옵션이 비활성화됨

자세한 내용은 2020.3.1 패치 4 블로그 게시물을 참고하세요.

Android 스튜디오 Arctic Fox | 2020.3.1 패치 3(2021년 10월)

이번 소규모 업데이트는 다음과 같은 버그 수정을 포함합니다.

  • Android Gradle 플러그인
    • 린트 독립형 플러그인이 gradleApi() 종속 항목을 제대로 처리하지 않습니다.
    • Gradle 빌드가 스튜디오 외부에서 실행되는 동안 JPS 빌드가 트리거됩니다.
    • 소스를 생성하는 프로세서를 포함하는 KSP와 Kapt를 프로젝트에서 모두 사용 설정하면 BundleLibraryClassesInputs가 중단됩니다.
  • C++ 편집기
    • 백그라운드에서 실행되는 JniReferencesSearch 계산에 소요되는 시간이 길면 UI가 정지됩니다.
  • Database Inspector
    • 데이터베이스 저장을 허용합니다.
    • 경로에 공백이 있는 App Inspection/Database Inspector를 사용하여 데이터를 내보낼 수 없습니다.
  • Dexer(D8)
    • 서브클래스를 서브클래스로 분류할 때 자바 람다로 인해 예상치 못한 동작이 발생합니다.
  • 축소기(R8)
    • r8 압축 중 Cannot constrain type 오류가 발생합니다.
    • R8 3.0.69(AGP 7.0.2) 및 3.0.72 실행 중 문제가 발생합니다.

자세한 내용은 2020.3.1 패치 3 블로그 게시물을 참고하세요.

Android 스튜디오 Arctic Fox | 2020.3.1 패치 2(2021년 9월)

이번 소규모 업데이트는 다음과 같은 버그 수정을 포함합니다.

  • Android Gradle 플러그인
    • AS Arctic Fox Canary 7에서 Canary 8로 업그레이드 시 Gradle 동기화가 10회 실행됨
    • 디슈가링 및 재현 가능한 빌드
  • C++ 빌드
    • tasks.whenTaskAdded 클로저를 사용하는 경우 Android Gradle 플러그인 7.0.0은 APK에 jniLibs를 포함하지 않습니다.
  • 수정
    • MergedManifestRefreshListener가 Arctic Fox에서 무한 루프에 빠집니다.
  • 린트
    • '린트 검사를 위한 린트 검사'가 실행되지 않습니다.
  • 축소기(R8)
    • AGP7에서 R8로 빌드를 실행할 때 ClassNotFoundException이 발생합니다.

자세한 내용은 2020.3.1 패치 2 블로그 게시물을 참고하세요.

Android 스튜디오 Arctic Fox | 2020.3.1 패치 1(2021년 8월)

이 업데이트에는 다음과 같은 문제의 수정사항이 포함되어 있습니다.

  • Android Gradle 플러그인
    • TypedefRemover가 ASM5를 사용하고 ASM7이 필요한 JDK 11 소스와 호환되지 않습니다.
    • 일부 새로운 DSL 블록은 AGP 7.0.0의 Groovy DSL에서 사용할 수 없습니다.
    • AGP 7.0.0 안정화 버전에서 libraryVariants.all{applicationId}에 ExternalApiUsageException이 발생합니다.
  • C++ 디버거
    • Mac M1에서 네이티브 디버그 세션을 시작하는 동안 '손상된 LLDB 구성 발견됨'이라는 AS Arctic Fox 오류 문제
  • Resource Manager
    • (Windows) 신규 -> 벡터 애셋 -> picture.svg: 생성된 xml에 잘못된 '빼기' 문자가 있습니다.
  • 축소기(R8)
    • BridgeHoisting의 NPE
    • 7.0.0으로 업그레이드한 후 R8이 '인라인 후 메서드에 예기치 않은 사용이 남아 있음' 오류와 함께 비정상 종료됩니다.

자세한 내용은 2020.3.1 패치 1 블로그 게시물을 참고하세요.