ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Windows에서 Android 개발 환경 준비하기(Android Studio 설치)
    Android/Android Studio 개발환경 2019. 7. 21. 09:08



    윈도우에서 안드로이드 스튜디오를 설치하고 프로젝트 생성하는 과정을 다룹니다.  

    안드로이드 SDK 설치 요령과 새로운 안드로이드 프로젝트 생성 및 기존 프로젝트를 불러오는 방법도 소개하고 있습니다. 



    1. 안드로이드 개발환경 구축

        1.1. Android Studio 설치

        1.2. SDK Manager 사용법


    2. 안드로이드 프로젝트 생성하기

        2.1. 안드로이드 디바이스에서 앱 실행


    3. 기존 프로젝트 불러오기

        3.1. 이클립스 + ADT 기반 프로젝트

        3.2. 안드로이드 프로젝트

        3.3. Cannot Resolve Symbol 'R'




    2017.04.20

    . . . . . . . . . . 

    2019. 2. 13

    2019. 7. 20     androidx 관련 내용 추가 





    영상으로도 만들어 보았습니다. 





    1. 안드로이드 개발환경 구축

    1.1. Android Studio 설치

    Android Studio는 구글에서 공식으로 지원하는 Android 앱 개발을 위한 IDE입니다.

    IntelliJ IDEA 를 기반으로 하고 있으며 Gradle 빌드 시스템을 사용합니다. 



    1. 아래 링크에 접속하면 컴퓨터에서 사용중인 운영체제를 감지하여 다운로드 링크를 보여줍니다.

    https://developer.android.com/studio/ 


    아래 쪽에 보이는 다운로드 옵션 클릭하면 다른 운영체제를 위한 안드로이드 스튜디오를 선택하여 다운로드 가능합니다. 





    2. 다운로드 받은 설치 파일을 실행하여 설치를 진행합니다.





    안드로이드 스튜디오에서 제공하는 에뮬레이터를 사용하려면 Android Virtual Device를 체크해야 합니다. 





    다음처럼 안드로이드 스튜디오의 설치 위치를 다른 드라이브로 변경할 수 있습니다.





    3. 처음 설치하는 것이라면 Do not import settings를 선택합니다. 





    4. Android Studio를 설치 완료 후 처음 실행하면 개발환경 준비를 위해서 위자드가 실행됩니다. 





    5. Custom을 선택하여 설치를 진행했습니다.





    6. 안드로이드 스튜디오에서 사용할 유저 인터페이스 테마를 선택합니다. 





    7. 선택할 수 있는 컴포넌트를 보여주는데 에뮬레이터 사용을 위한 패키지만 선택가능합니다.

    안드로이드 에뮬레이터를 사용할거라면 Performance( Intel HAXM )과 Android Virtual Device를 선택해줘야 합니다. 




    기본 SDK 설치 위치는 아래 경로입니다. 


    C:\Users\사용자 이름\AppData\Local\Android\Sdk



    AppData 폴더는 숨겨진 파일을 보이게 폴더 옵션을 변경해주어야 접근이 가능합니다. 





    8. Performance( Intel HAXM )를 선택했다면 에뮬레이터 가속을 위해 사용할 메모리 양을 물어봅니다.

    디폴트 값을 사용해도 됩니다.





    9. 설치될 컴포넌트 목록을 보여줍니다.  Finish를 클릭하면 다운로드 및 설치가 진행됩니다. 





    10. 설치완료 후 나중에 사용하게 되는 keytool.exe 파일을 명령 프롬프트에서 실행할 수 있도록 PATH를 추가해야 합니다.


    윈도우키 + R를 누른 후,  sysdm.cpl을 입력하여  제어판시스템 속성을 실행시킵니다.





    고급 에서 환경 변수를 클릭합니다.




     

    11. 시스템 변수 항목들 중 Path를 선택하고 편집을 클릭합니다.





    12. 변수 값 끝에 ;C:\Program Files\Android\Android Studio\jre\bin를 입력하고 확인을 클릭합니다.

    경로 앞에 있는 세미콜론(;)을 빠뜨리면 안됩니다. 


    윈도우 버전의 차이로 아래처럼 안보일 경우에는 13번에 나온대로 진행합니다.





    13. 새로 만들기를 클릭하거나 경로가 입력안되어 있는 빈칸을 마우스로 클릭합니다.




    이미 입력되어 있는 경로 다음 줄이 파란색 블럭으로 하이라이트 되면서 커서가 보입니다.




     C:\Program Files\Android\Android Studio\jre\bin를 입력하고 확인을 클릭합니다.

     




    14. 확인을 클릭하여 환경 변수 창을 닫습니다.





    15. Path 설정이 제대로 되었는지 확인해보기 위해 윈도우키 + R을 누르고 cmd +  엔터를 입력하여 명령 프롬프트를 실행합니다.




    명령 프롬프트 창에서 keytool을 입력하고 엔터를 눌렀을 때 다음과 같은 화면이 보여야 합니다.





    1.2. SDK Manager 사용법 

    1. 안드로이드 스튜디오가 처음 실행되면 Welcome 창이 보입니다. 

    오른쪽 아래에 있는 Configure를 클릭하여 안드로이드 스튜디오 설정을 할 수 있습니다.

      




    안드로이드 스튜디오에서 프로젝트 파일을 열어둔 상태에서도 선택가능한 항목들입니다. 





    진행하기 전에 Welcome 창의 메뉴에서  Check for Updates를 클릭하여 안드로이드 스튜디오와 안드로이드 패키지들을 최신버전으로 업데이트합니다.

    글 작성 시점에서 안드로이드 스튜디오의 최신 버전은 3.4.2입니다. 



    업데이트 할 것이 없으면 다음처럼 보입니다.





    2. Welcome 창의 SDK Manager를 클릭하여 안드로이드 스튜디오에서 사용할 SDK와 관련 도구들을 확인해보겠습니다. 

    이미 프로젝트 파일을 열어놓은 상태라면 메뉴에서 Tools > SDK Manager를 선택하면 됩니다. 



    안드로이드 스튜디오의 설정 창의 일부로 SDK Manager가 보입니다. 




    상단에 현재 설치된  SDK의 위치가 표시됩니다.





    3. SDK Platforms 탭에는 안드로이드 프로젝트를 빌드할때 사용되는 플랫폼 패키지가 안드로이드 버전별로 준비되어 있습니다


    SDK 최신 버전은 Android 9.+ (Q) API 29입니다.  최신 버전 SDK를 사용하도록 권장하고 있습니다. 





    4. 오른쪽 하단의 Show Package Details를 선택하면 세부 항목들이 보입니다.

    체크 된 항목이 설치된 패키지입니다. 


    에뮬레이터에서 사용할 수 있는 Google APIs와 Google Play 시스템 이미지의 차이는 Google Play Store가 설치되어 있는지 여부입니다.





    5. Not installed인 항목을 선택하면 설치 대상으로 되며, Installed인 항목을 선택하면 제거 대상이 됩니다. 


    Apply 버튼을 클릭해야 추가 및 제거가 진행됩니다. 





    6. SDK Tools 탭에는 안드로이드 프로젝트 빌드를 위해 필요한 도구, 에뮬레이터, 기본적으로 필요한 라이브러리등이 포함되어 있습니다. 




    안드로이드 스튜디오를 사용하기 위해서는 다음 항목들을 반드시 설치되어야 합니다. 


    • Android SDK Build-Tools

                Android 앱을 빌드하기 위해 필요한 도구들입니다.

                SDK가 설치된 경로의  \build-tools 폴더에 버전별 별도의 폴더에 있습니다.


    • Android SDK Platform-Tools

                Android 개발시 플랫폼과 관련된 작업을 위해  필요한 도구들을 포함합니다. 

                SDK가 설치된 경로의 \platform-tools 폴더에 위치합니다.


                몇가지만 예로 들면..

                - adb : 안드로이드 디바이스나 에뮬레이터에서 실행 중인 가상 디바이스와 통신, 명령 전송, 

                           앱 설치, 파일 복사 등을 위해 사용되는 다목적 도구입니다.


                - fastboot : 안드로이드 디바이스의 플래시 메모리에 데이터를 직접 기록하기 위한 도구로 

                                   보통 복구 이미지, 부트로더, 커널을 안드로이드 디바이스에 새로 업로드하기 위해 

                                   사용됩니다.


                - systrace : 앱 프로세스 및 Android 시스템 프로세스의 실행 시간을 캡쳐해서 보여주며 

                                    이 정보는 앱의 성능을 분석하는 데 사용됩니다.


    • Android SDK Tools

                안드로이드 스튜디오를 포함하여  안드로드이 개발 및 디버깅을 위한 도구들을 포함합니다.



    에뮬레이터를 사용하기 위해서는 다음 항목들이 필요합니다. 

    • Android Emulator

    • Intel x86 Emulator Accelerator (HAXM installer)




    2. 안드로이드 프로젝트 생성하기

    1.Start a New Android Studio project를 클릭하여 새로운 프로젝트를 생성합니다.




    프로젝트를 열었던 적이 있었다면 메뉴에서  File > New > New Project를 선택하여 새로운 프로젝트를 생성할 수 있습니다.




    2. 프로젝트에 추가할 액티비티로 Empty Activity를 선택합니다. 


    Empty Activity는 최소한의 구성요소만 포함된 레이아웃 파일과 코드 파일이 생성됩니다. 

    최소한의 템플릿을 사용하여 처음부터 작업해야 할 경우 사용합니다. 다음 두 개의 파일이 생성됩니다.


    • ConstraintLayout에 TextView 하나가 추가된 XML 레이아웃 파일(확장자 xml)

    • onCreate 메소드만 추가되어 있는 액티비티 클래스가 포함된 자바 코드 파일(확장자 java)





    3. 앱의 이름(Name)과 패키지 이름(Package name)을 입력합니다.  

    Name의 첫번째 글자는 대문자여야합니다.


    이전에 있었던 company domain 항목이 사라졌습니다. Package name 항목에 역순으로 프로젝트 이름 앞에 붙여줘야 합니다. 

    예를 들어 com.example 대신에 com.tistory.webnautes라고 입력하면 됩니다. myapplication은 프로젝트 이름을 변형하여 자동으로 입력되는 이름입니다. 


    한번 정해놓으면 다음 번 프로젝트 생성시에도 계속 같은 이름으로 적용됩니다.



    주의할 점은 Package name은 앱의 고유 식별자로 사용되기 때문에 구글 플레이스토어에 앱을 등록할 때 기존 것들과 중복되면 안됩니다.  



    Language는 Java로 변경했습니다. 



    Minimum API Level 항목에서 앱을 실행할 최소 SDK를 선택합니다. 


    예를 들어 최소 SDK로 API 15 ( Android 4.0.3)을 지정하면 API 15 미만의  안드로이드 OS를 사용하는 안드로이드 디바이스에서 설치 및 동작하지 않습니다. 


    어떤 버전을 선택해야 할지 결정할 때, Help me choose를 클릭해보세요.. 

    버전 별로 사용되는 디바이스  비율을 보여줍니다. 



    Use androidx.* artifacts가 체크된 상태로 비활성화 되어있습니다.  

    기존 support 라이브러리 대신에 androidx 를 사용하게 됩니다. 


    API 29인 SDK를 제거하면 선택가능하게 바뀌지만 support 라이브러리 사용시 문제가 많기 때문에 이젠 어쩔 수 없이 androidx를 사용해야 하는 듯합니다. 

    support 라이브러리는 지원이 중단된다고 합니다. 


    import시 support 라이브러리 대신에 androidx를 사용하면 됩니다. 그 외에는 별차이 없이 사용가능합니다. 


    androidx 관련해서 에러가 나는 경우 아래 링크에서 해당 패키지를 찾아서 androidx용으로 바꾸어주면 해결됩니다.

    https://developer.android.com/jetpack/androidx/migrate     





    4.  안드로이드 스튜디오의 왼쪽 아래에 Gradle 작업이 수행 중이라는 Gradle sync started 메시지가 보입니다. 


    지금  프로젝트의 파일들을 변경하면 문제가 생길 수 있기 때문에 기다려야 합니다. 





    아래 화면처럼 activity_main.xml 파일과 MainActivity.java 파일이 보일때 까지 대기하면 됩니다.  





    7. 왼쪽에 위치한 Project 패널에 프로젝트 폴더와 파일이 보입니다.




    오른쪽에는 프로젝트 파일 중 MainActivity.java 파일과 activity_main.xml 파일이 열려있습니다.  





    프로젝트 생성시 Use androidx.* artifacts가 체크했다면 android.support.v7.app.AppCompatActivity 대신에 androidx.appcompat.app.AppCompatActivity 패키지를 사용합니다. 





    8.  디폴트로 보여지는 프로젝트 구성은  Android 뷰로 선택되어 있습니다. 


    모듈 및 파일 형식별로 프로젝트 파일/폴더를 분류해서 프로젝트에서 수정하지 않는 파일/폴더를(플랫폼, JRE, 외부 라이브러리 등)  제외하고 보여줍니다. 




    안드로이드 프로젝트를 구성하는 파일들 중에 중요한 몇가지 파일들을 설명합니다. 


    본 포스팅에서는 Android 뷰를 기준으로 설명하지만 이것이 더 좋다는 의미는 아니며 익숙한 뷰를 사용하시면 됩니다. 

    상황에 따라선 다음에 설명하는 Project 뷰를 사용해야 하는 경우도 있습니다. 



    1. app / manifests

     AndroidManifest.xml    

                     app 모듈의 매니페스트 파일


                     매니페스트 파일에는 안드로이드 시스템이 앱을 실행하기 위해 필요한 정보를 정의합니다. 

                     앱에 대한 고유 식별자 역할을 하는 패키지 이름,  액티비티, 서비스 등과 같은 앱의 구성요소,

                     시스템 기능을 사용하기 위해 필요한 퍼미션 선언,  앱에서 사용되는 테마 등이 포함됩니다. 



    1. app / java

                app 모듈의 자바 코드 파일.  패키지 이름으로 분류


    MainActivity.java

                    액티비티에 대한 클래스 정의가 되어 있는 java 파일입니다. (액티비티의 동작을 코드로 작성)

                    MainActivity 클래스는 앱의 실행이 시작되는 코드로 여기에서 지정한 레이아웃을 화면에 

                    처음 보여줍니다.  

                



    1. app / res

                app 모듈에서 사용되는 모든 리소스 파일들이 종류별로 저장되어 있습니다. 


    ▷ drawable

                    앱에서 사용되는 이미지 파일과 관련 파일

               


    ▷ layout

        액티비티의 레이아웃을 정의한 xml 파일


        ►activity_main.xml

                       액티비티의 레이아웃을 정의한 xml 파일입니다. 

                       이 파일에 추가한 UI 컴포넌트들이 화면에 보여지게 됩니다. 

               


    ▷ mipmap

                   런처 아이콘에 사용되는 이미지가 디바이스 해상도별로 저장

                   안드로이드 디바이스에서 해당 앱을 실행하기 위한 터치할 때 보이는 아이콘입니다.  

                           


    ▷ values

                    앱에서 사용되는 리스소 관련 상수를 정의한 파일들이 저장됩니다.  ID로 참조하게 됩니다.

        ►colors.xml

                       앱에서 사용되는 색의 값을(16진수값) 정의해놓습니다.   

        ►strings.xml

                       앱에서 사용되는 문자열을 정의해놓습니다.  

        ►styles.xml

          뷰나 윈도우의 모습을 위한 속성을 지정해줄 수 있습니다 .

                



    1. Gradle Scripts

       

               Gradle 빌드 시스템에서 앱을 컴파일 및 빌드시 사용되는 파일입니다. 


               ▷build.gradle (Project: HelloWorld)

                  전체 프로젝트를 위한 파일. 모든 모듈에 적용되는 빌드 구성을 정의합니다.


               ▷build.gradle (Module: app)

                  프로젝트에 포함되어 있는 app 모듈을 위한 파일. 모듈별로 하나씩 존재하며 

                  각 모듈에 대한 빌드 구성을 정의합니다.


              




    9. 디폴트로 설정 안되어 있지만 많이 사용하는 뷰 중 하나가 Project 뷰입니다.

    실제 디렉토리 계층 구조를 반영하여 전체  프로젝트와 모듈별로 파일/폴더를 나누어서 보여줍니다. 


    아래 화면의 번호는 Android 뷰에서 설명했던 주요 파일/폴더의 Project 뷰에서의 위치입니다.

    Android 뷰에서 보여주지 않던  외부 라이브러리 같은 프로젝트의 파일/폴더를 확인 가능합니다. 





    2.1. 안드로이드 디바이스에서 앱 실행

    1. USB 케이블을 사용하여 안드로이드 디바이스를 컴퓨터에 연결합니다.

    안드로이드 디바이스를 위한 드라이버 설치가 필요할 수도 있습니다. 




    2. 오른쪽 아래에 있는 Device File Explorer를 선택하면 현재 연결된 안드로이드 디바이스의 파일 및 폴더를 볼 수 있습니다. 




    USB 디버깅이  활성화 안되어 있는 안드로이드 디바이스라면 아직 연결된 디바이스가 없다고 표시됩니다.





    3. 안드로이드 디바이스의 USB 디버깅 활성화시키는 설정 항목의 위치가 제조회사에 따라 조금씩 위치 차이가 있지만 보통 설정 > 휴대폰 정보에 있습니다.


    휴대폰 정보를 선택하고  빌드 정보를 여러 번  선택하다보면 개발자 옵션이 활성화됩니다. 







    4. 개발자 옵션은 보통 휴대정보 항목 위에 생깁니다 .





    5. 개발자 옵션이 활성화 되었는지 확인하고 





    6. USB 디버깅 항목을 활성화 시킵니다.  


    바로 아래 있는 USB 디버깅 권한 승인 취소를 선택하면 컴퓨터에 부여했던 USB 디버깅 권한이  취소 됩니다. 

    스마트폰이 PC와 분리되어 있을 때에만 디버깅 권한 승인 취소가 가능합니다. 





    7.  안드로이드 스튜디오가 실행 상태에서 안드로이드 폰을 연결하면 현재 연결된 컴퓨터에서 USB 디버깅을 허용할지 물어보는 메시지 박스가 표시됩니다.


    허용전까지는 안드로이드 디바이스가 OFFLINE으로 표시됩니다. 





    8. 이 컴퓨터에서 항상 허용을 체크하고 확인을 선택하면 이후 다시 물어보지 않습니다.

     




    9.  Device File Explorer에서 안드로이드 디바이스의 파일/폴더에 접근할 수 있게 됩니다. 





    10. 연결된 안드로이드 디바이스가 보이지 않는 경우 연결 방식을 변경해보면 해결됩니다. 

    안드로이드 폰의 상태표시줄에 MTP로 되어 있다면, 선택하여 




    PTP로 변경합니다. 




    PTP로의 연결을 허용해주면 




    안드로이드 스튜디오가 실행 상태에서 안드로이드 폰을 연결하면 현재 연결된 컴퓨터에서 USB 디버깅을 허용할지 물어보는 메시지 박스가 표시됩니다.


    이 컴퓨터에서 항상 허용을 체크하고 확인을 선택하면 이후 다시 물어보지 않습니다. 




    이제  Device File Explorer에 해당 디바이스가 보이게 됩니다.



    11. 프로젝트를 빌드 및  빌드된 앱을 안드로이드 폰에 설치하기 위해 툴바에서 (RUN)을 클릭합니다. 




    12. Select Deployment Target 창에서 빌드된 앱이 설치할  안드로이드 디바이스를 선택하고 OK를 클릭합니다 .





    13. Instant Run 기능을 사용하려면 해당 플랫폼이 설치되어 있어야 합니다. 

    Instant Run을 사용하면 소스 변경이 있을 때 마다 새로 APK를 빌드하지 않고 업데이트된 내용만 앱에 푸시해주기 때문에 변경사항을 훨씬 빨리 적용할 수 있습니다.


    Install and Continue를 선택하여 사용하도록 하면 디바이스의 버전인 Andorid 7.0(api 24)을 위한 플랫폼이 다운로드 된 후 진행이 됩니다.





    14. 순차적으로 Gradle 빌드와 



    빌드된 APK 설치가 진행됩니다.





    15. 안드로이드 디바이스에 앱이 실행된 결과가 보입니다. 





    3. 기존 프로젝트 불러오기 

    3.1. 이클립스 + ADT 기반 프로젝트 


    다음 포스팅을 참고하세요.. 



    이클립스(Eclipse) + ADT 기반 프로젝트를 Android Studio로 불러오기(import)

    http://webnautes.tistory.com/1113




    3.2. 안드로이드 프로젝트

    1. 기존에 열어둔 프로젝트가 없다면 welcome 창에서 Open an existing Android Studio project를 선택합니다.  




    기존에 열어둔 프로젝트가 있다면 메뉴에서 File > Open을 선택합니다.  




    2. Open File or Project 창에서 불러올 안드로이드 프로젝트의 폴더를 선택하고 OK를 클릭합니다.





    3. 프로젝트에서 사용된 버전의 안드로이드 SDK 컴포넌트가 사용하는 안드로이드 스튜디오에 설치되어 있지 않으면 아래와 같은 에러가 납니다. 


    아래의 경우에는 android 25용 플랫폼 SDK가  없다는 에러입니다. 


    Error:Failed to find target with hash string 'android-25' in: C:\Users\webnautes\AppData\Local\Android\Sdk

    Install missing platform(s) and sync project




    Install missing platform(s) and sync project를 클릭하면 해당 SDK 패키지에 대한 설치가 진행됩니다. 




    4. 계속해서 필요한 SDK 컴포넌트가 설치안되어 있다고 에러가 날 수 있습니다.


    앞에서 한 방식대로 파란색 링크를 클릭하여 진행하면 됩니다.

    프로젝트에 따라 내용이 다를 수 있습니다. 


    아래의 경우 사용된 Build Tools버전이 없어서 에러가 났습니다.


    Failed to find Build Tools revision 25.0.0

    Install Build Tools 25.0.0 and sync project




    5. Gradle 플러그인에 대한 업데이트도 진행해줍니다. 




    다음과  같은 메시지가 보이면 Update Build Tools version and sync project를 클릭하여 진행합니다.


    The specified Android SDK Build Tools version (25.0.0) is ignored, as it is below the minimum supported version (27.0.3) for Android Gradle Plugin 3.1.2.

    Android SDK Build Tools 27.0.3 will be used.

    To suppress this warning, remove "buildToolsVersion '25.0.0'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.

    Update Build Tools version and sync project

    Open File




    6.  모든 필요한 패키지가 설치가 완료되고 Sync가 완료되면 툴바의 Run 아이콘이 초록색으로 변합니다. 





    이제  안드로이드 디바이스에 앱 설치를 진행할 수 있습니다. 




    3.3. Cannot Resolve Symbol 'R'

    다음과 같은 리소스 관련 에러와 함께 중단된 경우 

    Error:No resource identifier found for..




    MainActivity.java파일에 리소스 관련 코드들에 R이 붉은색으로 표시되며 마우스 커서를 가져가는 경우 Cannot Resolve Symbol 'R' 메시지가 보입니다. 




    http://stackoverflow.com/questions/17054000/cannot-resolve-symbol-r-in-android-studio 에 제시된 해결 방법들 중, 다음 세가지가 효과 있는 듯합니다. 



    1. 대부분의 경우 메뉴에서 Build > Clean ProjectBuild > Rebuild Project를 차례대로 선택하여 해결됩니다. 




    2. 메뉴에서 Tools >  Android > Sync Project with Gradle Files를 선택하거나 툴바에서 해당 아이콘을 클릭 





    3.  메뉴에서 File > Invalidate Caches / Restart..를 선택

    Invalidate Caches창이 보이면 Invalidate and Restart를 클릭 




    간혹 상위 버전의 SDK로 생성된 안드로이드 프로젝트의 경우 build.gradle에서 compileSdkVersion와 targetSdkVersion를 낮추면 Cannot Resolve Symbol 'R' 에러가 발생합니다.


    이 경우 위에서 언급한 세가지 방법으로도 해결이 안됩니다 .  





    포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
    댓글로 알려주시면 빠른 시일내에 답변을 드리겠습니다.

    여러분의 응원으로 좋은 컨텐츠가 만들어집니다. 지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 : )

    유튜브 구독하기


    댓글 75

    • 이전 댓글 더보기
    • LDM 2017.12.13 16:40


      안녕하세요
      안드로이드 스튜디오 3.0 설치한 후
      Gradle project sync failed. Basic functionality will not work properly
      라는 메세지 뜨면서 error 되는데
      이거 왜 그런건가요?

    • LDM 2017.12.13 17:00


      Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support:appcompat-v7:26.1.0.

      Could not resolve com.android.support:appcompat-v7:26.1.0.
      Required by:
      project :app
      > Could not resolve com.android.support:appcompat-v7:26.1.0.
      > Could not get resource 'https://dl.google.com/dl/android/maven2/com/android/support/appcompat-v7/26.1.0/appcompat-v7-26.1.0.pom'.
      > Could not GET 'https://dl.google.com/dl/android/maven2/com/android/support/appcompat-v7/26.1.0/appcompat-v7-26.1.0.pom'.
      > Received fatal alert: access_denied

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2017.12.13 17:06 신고


        아래쪽에 파란색 줄로 다음과 같은 메시지가 보이지 않나요?
        해당 줄을 클릭하면 해결이 됩니다.

        Install missing ... and sync project

    • Favicon of https://jeongsu.tistory.com BlogIcon jeongsu 2018.02.05 14:06 신고


      아니 정말 우연히 검색을 하면 항상 webnautes님의 블로그를 접할수 있어요 ㅋㅋ

      어제도 그렇고 항상 좋은 글 감사합니다.

      아 저도 어서 님처럼 성장하고 싶어요

      - 지나가는 하수..

    • Favicon of https://wondongho.tistory.com BlogIcon 원동호 2018.04.12 10:55 신고


      글 잘읽었습니다 다음에 참고좀하려고하는데
      설치과정 블로그에 링크좀남길수있을까요?ㅎㅎ

    • dennis 2018.05.10 23:42


      Android API 27이 없고 대신 안드로이드 P Preview가 있네요. 그리고 저는 안드로이드 8.1(OREO)가 기본체크 되어있습니다. 오레오의 google api 및 play를 체크 해주면 될까요 ?

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2018.05.10 23:55 신고


        SDK Platforms 패키지는 대부분의 경우 Preview 버전 바로 아래 것을 사용하시는게 좋을 듯합니다.

        Google Play services 패키지는 모든 플랫폼 패키지 버전에서 공통적으로 사용됩니다.

      • dennis 2018.05.11 00:54


        감사합니다.

    • soo 2018.07.09 20:11


      설치후에 가상머신을 실행하려고 하니
      the ADB binary found at ~~ (디렉토리) is obsolete and has seriousperformance problem with the Android Emulator. Please udpate to a newer version to get significantly faster app/file transfer.
      이라는 경고문구가 뜨고 계속 부팅중이예요...

    • po 2018.08.21 20:51


      안녕하세요 글 잘 읽었습니다.
      다름이 아니라 안드로이드 스튜디오를 설치할때부터 사용자 이름이 한글로 되어있어서 아스키 코드에 없다고 하면서 설치 오류가 뜨길래 공용사용자(public)으로 설치를 진행했습니다. 그 후에 스튜디오를 실행하니 처음 킬때 빌드부터 오류가 뜨더군요
      오류 메세지는
      java compiler :
      java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details 이렇게 뜹니다.
      두번 재설치 했는데도 안되는데 무엇이 문제인가요 ㅠㅠ

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2018.08.21 20:56 신고


        public 폴더도 문제가 발생하는 듯합니다. 다음 글을 참고해서 해결해보세요.


        http://m.egloos.zum.com/icsd3/v/6336388

      • po 2018.08.22 18:58


        감사합니다. 일단 해보고 그래도 안되면 다시 리댓하겠습니다 ㅠㅠ

    • 안드로이드 입문자 2019.01.28 23:26


      감사합니다 덕분에 안드로이드 환경설정 잘 배우고 갑니다!

    • Favicon of https://constructionsite.tistory.com BlogIcon changi1122 2019.03.24 16:55 신고


      좋은 글 감사합니다

    • 2019.04.02 17:53


      비밀댓글입니다

    • 레이프 2019.05.07 21:18


      openCV 빌드하기 전에 이 과정을 하고 그 다음에 openCV빌드과정을 하면 되나요??

    • 안녕하세요 2019.05.17 18:02


      안녕하세요.. 안드로이드 스튜디오를 깔고 run을 눌렀는데 Unable to connect to ADB. Check the Event Log for possible issues. Verify that your localhost entry is pointing to 127.0.0.1 or ::1 for IPv4 or IPv6, respectively. 라는 문구가 떠요... 혹시 해결방법을 아시나요?

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2019.05.17 19:28 신고


        구글에서 검색해보니..

        플랫폼 툴즈를 교체하여 해결했다는 글이 있습니다.

        한번 해보세요..

        똑같은 현상을 재현할 수 없기때문에 실제로 동작을 시켜볼수는 없었습니다.

        https://stackoverflow.com/questions/55762216/not-able-to-connect-adb-after-upgrate-android-studio-to-3-4

      • 안녕하세요 2019.05.18 14:17


        말씀하신대로 해보니까 잘 작동하네요! 감사합니다~!

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2019.05.18 18:06 신고


        해결되서 다행입니다 : )

    • 2019.05.27 16:57


      비밀댓글입니다

    • 데니스 김 2019.06.14 18:20


      고수님! 너무 자주 도움을 청해서 ㅈㅚ송합니다.
      포맷하고 위에서 순서대로 각각 다른 노트북 4대를 설치해 봤는데 2대는 되고
      2대는 이런 메세지가 나옵니다. 4번 정도를 포맷했는데 결과가 같습니다.
      무슨 문제로 이런 상황이 발생하는 것인지 고수님의 한 수를 부탁드립니다.

      org.gradle.execution.MultipleBuildFailures: Build completed with 1 failures.
      at org.gradle.initialization.DefaultGradleLauncher$ExecuteTasks.run(DefaultGradleLauncher.java:386)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
      at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
      at org.gradle.initialization.DefaultGradleLauncher.runTasks(DefaultGradleLauncher.java:247)
      at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:159)
      at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:134)
      at org.gradle.internal.invocation.GradleBuildController$1.execute(GradleBuildController.java:58)
      at org.gradle.internal.invocation.GradleBuildController$1.execute(GradleBuildController.java:55)
      at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:82)
      at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:75)
      at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:183)
      at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:40)
      at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:75)
      at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:55)
      at org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner.run(ClientProvidedBuildActionRunner.java:55)
      at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
      at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
      at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:58)
      at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
      at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:39)
      at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:49)
      at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:44)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
      at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
      at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:44)
      at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:49)
      at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:46)
      at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:78)
      at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:46)
      at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:31)
      at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:42)
      at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:28)
      at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
      at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:52)
      at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:59)
      at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:36)
      at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:68)
      at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:38)
      at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:37)
      at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:26)
      at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
      at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
      at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:60)
      at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32)
      at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)
      at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41)
      at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:48)
      at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:32)
      at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
      at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
      at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
      at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
      at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
      at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
      at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
      at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
      at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
      at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
      at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
      at org.gradle.util.Swapper.swap(Swapper.java:38)
      at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
      at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
      at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
      at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
      at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
      at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
      at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
      at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:81)
      at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
      at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
      at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
      at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
      at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
      at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
      at java.lang.Thread.run(Thread.java:745)
      Caused by: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:mergeDebugResources'.
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:95)
      at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
      at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
      at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:119)
      at org.gradle.api.internal.tasks.execution.ResolvePreviousStateExecuter.execute(ResolvePreviousStateExecuter.java:43)
      at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
      at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
      at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:94)
      at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:56)
      at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:55)
      at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:67)
      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
      at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
      at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
      at org.gradle.execution.plan.DefaultPlanExecutor.process(DefaultPlanExecutor.java:74)
      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.executeWithServices(DefaultTaskExecutionGraph.java:178)
      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.execute(DefaultTaskExecutionGraph.java:154)
      at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:41)
      at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:40)
      at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:24)
      at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:46)
      at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:49)
      at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:40)
      at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:33)
      at org.gradle.initialization.DefaultGradleLauncher$ExecuteTasks.run(DefaultGradleLauncher.java:383)
      ... 83 more
      Caused by: com.android.ide.common.workers.WorkerExecutorException: 8 exceptions were raised by workers:
      com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.1-5326820-windows Daemon #0: Daemon startup failed
      This should not happen under normal circumstances, please file an issue if it does.
      com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.1-5326820-windows Daemon #1: Daemon startup failed
      This should not happen under normal circumstances, please file an issue if it does.
      com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.1-5326820-windows Daemon #2: Daemon startup failed
      This should not happen under normal circumstances, please file an issue if it does.
      com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.1-5326820-windows Daemon #3: Daemon startup failed
      This should not happen under normal circumstances, please file an issue if it does.
      com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.1-5326820-windows Daemon #4: Daemon startup failed
      This should not happen under normal circumstances, please file an issue if it does.
      com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.1-5326820-windows Daemon #5: Daemon startup failed
      This should not happen under normal circumstances, please file an issue if it does.
      com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.1-5326820-windows Daemon #6: Daemon startup failed
      This should not happen under normal circumstances, please file an issue if it does.
      com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.1-5326820-windows Daemon #7: Daemon startup failed
      This should not happen under normal circumstances, please file an issue if it does.

      at com.android.ide.common.workers.ExecutorServiceAdapter.await(ExecutorServiceAdapter.kt:62)
      at com.android.ide.common.workers.ExecutorServiceAdapter.close(ExecutorServiceAdapter.kt:69)
      at com.android.build.gradle.internal.aapt.WorkerExecutorResourceCompilationService.close(WorkerExecutorResourceCompilationService.kt:67)
      at com.android.build.gradle.tasks.MergeResources.doFullTaskAction(MergeResources.java:268)
      at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:106)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
      at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:47)
      at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
      at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:284)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
      at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:273)
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:258)
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:67)
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:145)
      at org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:49)
      at org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
      at org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
      at org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
      at org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:33)
      at org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
      at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:43)
      at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:29)
      at org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:134)
      at org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$3(CacheStep.java:83)
      at java.util.Optional.orElseGet(Optional.java:267)
      at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
      at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:36)
      at org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
      at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
      at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
      at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
      at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
      at java.util.Optional.map(Optional.java:215)
      at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
      at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
      at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:34)
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:91)
      ... 123 more
      Caused by: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.1-5326820-windows Daemon #0: Daemon startup failed
      This should not happen under normal circumstances, please file an issue if it does.
      at java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1006)
      at com.android.ide.common.workers.ExecutorServiceAdapter.await(ExecutorServiceAdapter.kt:56)
      ... 168 more
      Caused by: com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.1-5326820-windows Daemon #0: Daemon startup failed
      This should not happen under normal circumstances, please file an issue if it does.
      at com.android.builder.internal.aapt.v2.Aapt2Daemon.handleError(Aapt2Daemon.kt:148)
      at com.android.builder.internal.aapt.v2.Aapt2Daemon.checkStarted(Aapt2Daemon.kt:57)
      at com.android.builder.internal.aapt.v2.Aapt2Daemon.compile(Aapt2Daemon.kt:79)
      at com.android.builder.internal.aapt.v2.Aapt2DaemonManager$LeasedAaptDaemon.compile(Aapt2DaemonManager.kt:170)
      at com.android.build.gradle.internal.res.Aapt2CompileWithBlameRunnable$run$1.invoke(Aapt2CompileWithBlameRunnable.kt:37)
      at com.android.build.gradle.internal.res.Aapt2CompileWithBlameRunnable$run$1.invoke(Aapt2CompileWithBlameRunnable.kt:28)
      at com.android.build.gradle.internal.res.namespaced.Aapt2DaemonManagerService.useAaptDaemon(Aapt2DaemonManagerService.kt:71)
      at com.android.build.gradle.internal.res.namespaced.Aapt2DaemonManagerService.useAaptDaemon$default(Aapt2DaemonManagerService.kt:69)
      at com.android.build.gradle.internal.res.Aapt2CompileWithBlameRunnable.run(Aapt2CompileWithBlameRunnable.kt:34)
      at com.android.ide.common.workers.ExecutorServiceAdapter$submit$submission$1.run(ExecutorServiceAdapter.kt:40)
      at java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1386)
      at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
      at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
      at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
      at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
      Caused by: com.android.builder.internal.aapt.v2.Aapt2InternalException: Failed to start AAPT2 process.
      at com.android.builder.internal.aapt.v2.Aapt2DaemonImpl.stopQuietly(Aapt2DaemonImpl.kt:127)
      at com.android.builder.internal.aapt.v2.Aapt2DaemonImpl.startProcess(Aapt2DaemonImpl.kt:114)
      at com.android.builder.internal.aapt.v2.Aapt2Daemon.checkStarted(Aapt2Daemon.kt:53)
      ... 13 more
      Caused by: java.io.IOException: Process unexpectedly exit.
      at com.android.builder.internal.aapt.v2.Aapt2DaemonImpl.startProcess(Aapt2DaemonImpl.kt:115)
      ... 14 more

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2019.06.14 20:00 신고


        다음 링크에 나온대로 build.gradle에 추가해보세요.

        https://stackoverflow.com/a/40928360

      • ㅗ데니스 김 2019.06.14 20:55


        관심에 감사를 드립니다.
        많은 도움에 항상 감사하는 맘 입니다.

        위의 결과는 동일 합니다.

      • 데니스 김 2019.06.14 21:00


        참 이상한게 되는 노트북과 안 되는 노트북을 구분해보면 CPU 클럭의 차이가
        되는 놈은 2G 넘고 안 되는 놈은 이하여서 그런가요?

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2019.06.14 21:06 신고


        혹시 윈도우즈가 32비트는 아닌지 확인해보세요.

      • 데니스 김 2019.06.14 21:16


        4번을 설치 하면서 확인은 했습니다 64로요. 설치버전과 맞춘다고 맞췄는데....

      • 데니스 김 2019.06.14 21:22


        다른 노트북도 64이고 결과도 같고
        ... 이쪽 관련된 일을 안하다 보니 너무 어렵습니다.

      • 데니스 김 2019.06.14 21:23


        Cause 1: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-3.4.1-5326820-windows Daemon #0: Daemon startup failed
        This should not happen under normal circumstances, please file an issue if it does.
        at java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:1006)
        at com.android.ide.common.workers.ExecutorServiceAdapter.await(ExecutorServiceAdapter.kt:56)
        at com.android.ide.common.workers.ExecutorServiceAdapter.close(ExecutorServiceAdapter.kt:69)
        at com.android.build.gradle.internal.aapt.WorkerExecutorResourceCompilationService.close(WorkerExecutorResourceCompilationService.kt:67)
        at com.android.build.gradle.tasks.MergeResources.doFullTaskAction(MergeResources.java:268)
        at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:106)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:47)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:284)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:273)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:258)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:67)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:145)
        at org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:49)
        at org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
        at org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
        at org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
        at org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:33)
        at org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
        at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:43)
        at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:29)
        at org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:134)
        at org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$3(CacheStep.java:83)
        at java.util.Optional.orElseGet(Optional.java:267)
        at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
        at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:36)
        at org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
        at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
        at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
        at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
        at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2019.06.14 21:42 신고


        프로젝트를 새로 생성해서 안드로이드 프로젝트 스튜디오 상태줄에 처리 완료될때까지 기다려서 발생한 오류인가요?

      • 데니그 김 2019.06.14 21:47


        네! 되도록 산태줄 보면서 그다음으로 넘어가는데, 새로 생성해서 몇 번을 해도 결과가 왜 같은지 SDK도 몇번을 확인하고 해도 좀 이해가 아가요. 소스 첨가한것도 없는데....

      • 데니스 김 2019.06.14 21:51


        그리고 되도록
        Sync Project with gradle....

        Run 'app'
        를 하고 있습니다.

      • 데니스 김 2019.06.14 21:55


        또 한대의 노트북도 이래서 프로그램 제거를 몇번하고 깔고 하다보니 해결 되어버린 노트북도 있었습니다. 하다보면 어떻게 되는지 몰겠어요.

      • 데니스 김 2019.06.14 21:59


        죄송합니다. 저희건물주가 10시 이후론 소등을 해라해서 더 이상 이 노트북과 씨름을 못하겠습니다. 또 내일 와서 프로그램 재설치를 몇 번 해보겠습니다.

        감사합니다.

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2019.06.14 22:03 신고


        구글에서도 마땅한 해결책이 안찾아지네요..

        노트북에 깔린 윈도우간에 차이가 있는지도 한번 보세요.

        혹 하드 디스크 문제는 아닌지 싶네요.

      • 데니스 김 2019.06.15 09:28


        대단히 감사 합니다.
        무엇으로 표현해서 감사를 드릴지 몰겠네요. 열심히 방문해서 많이 배우는게 답일지.....

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2019.06.15 14:10 신고


        감사합니다 : )

      • 데니스김 2019.06.16 14:51


        고수님! 안녕하세요?
        해결은 되었습니다.
        노트북자체복구로 하니 같은 상황이 발생해서 다른 버전의 윈도우로 설치하니 상환 해제 되었습니다. 특정 윈도우 버전에서
        문제를 갖고 있는 것 같습니다.

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2019.06.16 18:19 신고


        해결되서 다행입니다 : )

    • 하...ㅠ 2019.08.09 16:48


      안녕하세요 포스트내용으로 따라했습니다. 그런데

      오후 4:40 Syncing only active variant
      You can disable this experimental feature from
      File → Settings → Experimental → Gradle → Only sync the active variant

      오후 4:43 * daemon not running; starting now at tcp:5037

      오후 4:43 * daemon started successfully

      오후 4:43 Emulator: WARNING: unexpected system image feature string, emulator might not function correctly, please try updating the emulator.

      오후 4:43 Emulator: Unexpected feature list: MultiDisplay VulkanNullOptionalStrings YUV420888toNV21 YUVCache

      오후 4:43 Emulator: dsound: Could not initialize DirectSoundCapture

      오후 4:43 Emulator: dsound: Reason: No sound driver is available for use, or the given GUID is not a valid DirectSound device ID

      오후 4:43 Emulator: dsound: Attempt to initialize voice without DirectSoundCapture object

      오후 4:43 Emulator: dsound: Attempt to initialize voice without DirectSoundCapture object

      오후 4:43 Emulator: audio: Failed to create voice `goldfish_audio_in'

      오후 4:43 Emulator: C:\Users\CPS\AppData\Local\Android\Sdk\emulator\qemu\windows-x86_64\qemu-system-x86_64.exe: warning: opening audio input failed

      오후 4:43 Emulator: dsound: Attempt to initialize voice without DirectSoundCapture object

      오후 4:43 Emulator: dsound: Attempt to initialize voice without DirectSoundCapture object

      오후 4:43 Emulator: audio: Failed to create voice `adc'

      저는 USB가 아닌 AVD 매니저로 Pixel API 29 을 만들었습니다.
      그랬더니 위와같은 라는 오류가 뜹니다 왜 이럴까여?

      • 하... 2019.08.09 16:49


        안드로이드 3번 삭제하고 다시까는데 계속 똑같은 오류가 떠용

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2019.08.09 16:59 신고


        윈도우에 혹시 Hyper-V가 활성화 되있나보세요..

        그리고 안드로이드 스튜디오의 메뉴에서 Help > Check For Update를 선택하여 업데이트도 해보세요.

      • 하... 2019.08.09 17:02


        Hyper-V 활성됬을때 어떻게 해야 되는건가여?? Hyper-V 끄면 되나요? -> 끌경우 다른 프로그램에서 문제가 생기는건 아니죠?

        Update는 업데이트 이미 했다고 뜹니다!

      • 하... 2019.08.09 17:07


        Hyper-V 끄기 하려고 windows 기능에 들어가봤는데 체크가 안되어있습니다ㅠㅠ

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2019.08.09 18:07 신고


        사운드쪽 에러 같은데 에뮬레이터를 사용하는데 문제가 있나요?

      • 하... 2019.08.12 13:16


        사운드는 사용하지 않지만 에뮬레이터가 실행이 안되서 질문드렸었습니듀ㅠ

        근데 Pixel이 아닌 Nexus S로 실행하니 됩니다!
        이유가 있나요? 버전의 차이인가요?

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2019.08.12 13:30 신고


        선택한 안드로이드폰 모델과 선택한 시스템 이미지가 안맞나봅니다

    • 초보자 2019.08.29 16:10


      기본 SDK 설치 위치는 아래 경로입니다.
      C:\Users\사용자 이름\AppData\Local\Android\Sdk

      라고 적어주신 부분에서 C드라이브가 아닌 D드라이브에서 제가 원하는 폴더(ex.D:\download)에 설치하려면 어떠한 부분을 바꿔줘야 하나요?

    • 참젠 2019.09.26 18:40


      글 잘 보았습니다. 초보라서.. 저두 하나씩 따라서 배우고 있습니다. 블로그에 글도 올리고 있는데... 앞으로 고수님의 많은 도움 부탁합니다. 좋은 글 감사합니다.

    • 완전초보 2019.10.01 21:37


      좋은 글 항상 감사합니다. 초보라 글보면서 열심히 따라하고 있습니다. 좋은하루 되세요~

    • Favicon of https://hw00173.tistory.com BlogIcon hw00173 2020.01.06 17:43 신고


      안녕하세요. 항상 해당 블로그를 통해 개발에 도움을 받고 있는 학생입니다. 얼마 전 gradle 과 관련한 에러가 발생하였는데, 몇일 째 해결하는데 어려움을 겪고 있어 질문을 드립니다.

      org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformDexWithInstantRunSlicesApkForDebug'.
      at
      org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:95)
      at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
      at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
      at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:119)
      at org.gradle.api.internal.tasks.execution.ResolvePreviousStateExecuter.execute(ResolvePreviousStateExecuter.java:43)
      at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
      at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
      at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:94)
      at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:56)
      at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:55)
      at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:67)
      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
      at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
      at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
      at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
      at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
      at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
      at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
      at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
      at java.lang.Thread.run(Thread.java:748)
      Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.io.FileNotFoundException: C:\Users\samsung\Desktop\PoseEstimationForMobileInJava-master\Fit_Me\app\build\intermediates\instant_run_split_apk_resources\debug\instantRunSplitApkResourcesDebug\out\slice_7\resources_ap
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
      at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593)
      at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677)
      at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:720)
      at com.android.ide.common.internal.WaitableExecutor.waitForTasksWithQuickFail(WaitableExecutor.java:149)
      at com.android.build.gradle.internal.transforms.InstantRunSliceSplitApkBuilder.transform(InstantRunSliceSplitApkBuilder.java:246)
      at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
      at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
      at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
      at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
      at sun.reflect.GeneratedMethodAccessor199.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
      at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:47)
      at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
      at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$2.run(ExecuteActionsTaskExecuter.java:284)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
      at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
      at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:273)
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:258)
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$200(ExecuteActionsTaskExecuter.java:67)
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:145)
      at org.gradle.internal.execution.impl.steps.ExecuteStep.execute(ExecuteStep.java:49)
      at org.gradle.internal.execution.impl.steps.CancelExecutionStep.execute(CancelExecutionStep.java:34)
      at org.gradle.internal.execution.impl.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:69)
      at org.gradle.internal.execution.impl.steps.TimeoutStep.execute(TimeoutStep.java:49)
      at org.gradle.internal.execution.impl.steps.CatchExceptionStep.execute(CatchExceptionStep.java:33)
      at org.gradle.internal.execution.impl.steps.CreateOutputsStep.execute(CreateOutputsStep.java:50)
      at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:43)
      at org.gradle.internal.execution.impl.steps.SnapshotOutputStep.execute(SnapshotOutputStep.java:29)
      at org.gradle.internal.execution.impl.steps.CacheStep.executeWithoutCache(CacheStep.java:134)
      at org.gradle.internal.execution.impl.steps.CacheStep.lambda$execute$3(CacheStep.java:83)
      at java.util.Optional.orElseGet(Optional.java:267)
      at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:82)
      at org.gradle.internal.execution.impl.steps.CacheStep.execute(CacheStep.java:36)
      at org.gradle.internal.execution.impl.steps.PrepareCachingStep.execute(PrepareCachingStep.java:33)
      at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:38)
      at org.gradle.internal.execution.impl.steps.StoreSnapshotsStep.execute(StoreSnapshotsStep.java:23)
      at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:96)
      at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:89)
      at java.util.Optional.map(Optional.java:215)
      at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
      at org.gradle.internal.execution.impl.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
      at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:34)
      at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:91)
      ... 35 more
      Caused by: java.lang.RuntimeException: java.io.FileNotFoundException: C:\Users\samsung\Desktop\PoseEstimationForMobileInJava-master\Fit_Me\app\build\intermediates\instant_run_split_apk_resources\debug\instantRunSplitApkResourcesDebug\out\slice_7\resources_ap
      at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1431)
      at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
      at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
      at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
      at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
      Caused by: java.io.FileNotFoundException: C:\Users\samsung\Desktop\PoseEstimationForMobileInJava-master\Fit_Me\app\build\intermediates\instant_run_split_apk_resources\debug\instantRunSplitApkResourcesDebug\out\slice_7\resources_ap
      at com.android.build.gradle.internal.transforms.InstantRunSliceSplitApkBuilder.lambda$null$1(InstantRunSliceSplitApkBuilder.java:233)
      at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
      ... 4 more

      다음과 같은 에러가 발생하여, 빌드 클린, 빌드 재빌드 apk 재빌드를 하였으나, 여전히 증상은 똑같습니다.


      build.gradle(Module:app) 부분은 다음과 같습니다.

      apply plugin: 'com.android.application'

      android {
      compileSdkVersion 28
      buildToolsVersion '28.0.3'

      defaultConfig {
      minSdkVersion 24
      targetSdkVersion 28
      versionCode 1
      versionName "1.0"
      testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

      externalNativeBuild {
      cmake {
      arguments '-DANDROID_TOOLCHAIN=clang', '-DANDROID_STL=gnustl_static'
      cppFlags "-std=c++11", "-frtti", "-fexceptions"
      }
      }
      ndk {
      abiFilters 'armeabi-v7a', 'x86'
      }

      }

      externalNativeBuild {
      cmake {
      //path "CMakeLists.txt"
      }
      }

      lintOptions {
      abortOnError false

      }


      buildTypes {
      release {
      minifyEnabled false
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      }

      debug {
      minifyEnabled false
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      }

      }
      aaptOptions {
      noCompress "tflite"
      }


      compileOptions {
      sourceCompatibility JavaVersion.VERSION_1_8
      targetCompatibility JavaVersion.VERSION_1_8
      }

      sourceSets {
      main {
      jniLibs.srcDirs = ['libs']
      }
      }
      }

      repositories {
      maven {
      url 'https://google.bintray.com/tensorflow'
      }
      flatDir {
      dirs 'libs'
      }
      }

      dependencies {
      implementation fileTree(include: ['*.jar'], dir: 'libs')
      implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
      implementation 'androidx.appcompat:appcompat:1.0.0'
      implementation 'androidx.legacy:legacy-support-v4:1.0.0'
      implementation 'androidx.recyclerview:recyclerview:1.0.0'
      //implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
      implementation 'com.google.android.material:material:1.0.0'
      implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'
      testImplementation 'junit:junit:4.12'
      implementation 'androidx.legacy:legacy-support-v4:1.0.0'
      implementation 'com.google.android.material:material:1.0.0'

      implementation 'com.github.bumptech.glide:glide:4.9.0'
      annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'

      implementation 'com.android.volley:volley:1.1.0'
      implementation 'com.google.code.gson:gson:2.2.4'
      implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly'
      implementation 'org.tensorflow:tensorflow-lite-gpu:0.0.0-nightly'

      implementation project(':openCVLibrary341')
      implementation 'com.squareup.retrofit2:retrofit:2.4.0'
      implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
      implementation 'com.squareup.retrofit2:converter-scalars:2.4.0'
      }

      감사합니다!

    • 안녕하세요 2020.01.19 19:44


      글 잘 읽었습니다
      그런데 가상 디바이스 실행 시키려고 하니까 계속 아래처럼 에러가 뜨네요
      Emulator: PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value
      이 에러는 어떻게 해결해야하나요? ㅠㅠ 구글에 찾아봤지만 계속 해결이 안 돼서 답답한 마음에 댓글 써봅니다

      • Favicon of https://webnautes.tistory.com BlogIcon webnautes 2020.01.19 19:50 신고


        아래 링크를 참고해보세요..
        안드로이드 스튜디오에 있는 SDK 경로와 실제 SDK가 설치된 경로를 일치시키라는 말 같습니다.
        혹 한글 경로가 섞여있어서 발생할 수도 있지 않을까 싶습니다.

        https://forthenextstep.tistory.com/208

Designed by Tistory.