HAXM installation failed 안드로이드 스튜디오 설치 후 AVD를 이용한 에뮬레이터 설치에서 Intel® HAXM installation failed 에러가 발생해서 해당 에러를 해결 할 수 있는 방법에 대해서 기술하기로 한다. HAXM Hardware accelerated execution manager 으로 인텔의 하드웨어 가속 기능인 해당 툴을 설치해야지 AVD 수행이 가능하며, AVD를 빠르게 사용 가능하다. 에러 메세지 Running Intel® HAXM installer Intel HAXM installation failed! For more details, please check the installation log: C:\Users\~\AppData\Local\Temp\haxm_install-20230403_1445.log C:\Users\~\AppData\Local\Android\Sdk\extras\intel\Hardware_Accelerated_Execution_Manager\haxm_install-20230403_1445.log을(를) 찾을 수 없습니다. Intel® HAXM installation failed. To install Intel® HAXM follow the instructions found at: https://github.com/intel/haxm/wiki/Installation-Instructions-on-Windows Done 공식 가이드 https://github.com/intel/haxm/blob/master/docs/manual-windows.md 해당 PC에 가상화 지원 여부 확인 작업관리자에서 CPU 가상화 지원 여부를 확인할 수 있다. 현재 가상화가 사용 안 함으로 되어 있으며, 사용 함으로 변경할 수 있다. CPU 가상화 사용함으로 변경 하기 1) BIOS 진입 Security -> System Security 바이오스 가상화 설정 2) Virtualization Technolog
Kotlin Interface Kotlin은 다중 상속을 지원하지 않는다. 특정 클래스를 동시에 두개 이상의 클래스를 상속 받는것을 의미한다. 이 때문에 자기 타입의 변수나 부모형 타입 변수에만 담을 수 있다. 만약, 생성된 객체의 주소 값을 다양한 타입에 변수에 담을 수 있도록 한다면 인터페이스를 활용하면 된다. Interface 여러 부모 클래스를 상속을 받아서 하나의 클래스에 모으고 싶을 때 사용한다. 인터페이스는 클래스가 아니므로 객체를 생성할 떄 사용할 수 없다. 단, 클래스는 한개 이상의 인터페이스를 구현할 수 있으며, 생성된 객체는 구현한 인터페이스형 참조 변수에 담을 수 있다. 인터페이스에는 추상 메서드와 일반 메서드 모두를 구현해서 사용할 수 있다. 인터페이스는 추상 클래스의 목적이 비슷하지만, 하나의 클래스에 여러 인터페이스를 구현할 수 있는 장점을 가지고 있다. fun main () { val obj1 = Inter1() // Error } interface Inter1 { fun inter1Method1 () { println ( "Inter1 의 interMethod1 입니다 ." ) } fun inter1Method2 () } 인터페이스는 객체를 생성 할 수 없으므로, 에러가 발생한다. Kotlin: Interface Inter1 does not have constructors interface Inter1 { fun inter1Method1 () { println ( "Inter1 의 interMethod1 입니다 ." ) } fun inter1Method2 () } class TestClass3: Inter1() { // Error } 인터페이스는 클래스가 아니므로 상속 받는것처럼 () 를 붙이면 안된다. Kotlin: Class 'TestClass3' is not abstract and doe
Kotlin this, super this 객체 자기 자신을 지칭한다. 멤버 변수와 메서드 내부의 변수를 구분할 때 사용한다. 멤버 메서드와 메서드 내부의 메서드를 구분할 떄 사용한다. 생성자에서 다른 생성자를 호출할 때 사용한다. fun main () { val obj1 = TestClass1() obj1.testMethod1() } class TestClass1 { var a1 = 100 fun testMethod1 () { var a1 = 200 println ( "a1 : $ a1 " ) println ( "this.a1 : $this .a1" ) } } this는 객체 자신을 의미하기때문에, 클래스 자체의 멤버변수 100 을 출력한다. 코틀린에서는 메서드 안에 메서드를 만드는게 가능하다. fun main () { val obj1 = TestClass1() obj1.testMethod1() } class TestClass1 { var a1 = 100 fun testMethod1 () { fun testMethod2 () { println ( "testMethod1 내부의 testMothod1" ) } testMethod2() // 내부 함수 호출 this .testMethod2() // 클래스 멤버의 메서드 호출 } fun testMethod2 () { println ( "testMethod2" ) } } 근데, 누가 이렇게 쓸까, 동일클래스에서 클래스 멤버변수랑 메서드 내부 멤버변수의 이름을 동일하게 하거나, 클래스 멤버 메서드랑 내부 멤버 메서드 이름을 동일하게 할 경우는 없을 것으로 생각된다. 아마 정적검사툴이나 보안체크툴에서
댓글
댓글 쓰기