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) Virtu...
Kotlin 중첩 클래스 중첩 클래스 클래스안에 만드는 클래스를 중첩클래스라고 부른다. 중첩 클래스에서는 각 클래스의 정의한 멤버를 사용할 수 있는가를 숙지 해야 한다. Inner 클래스는 OuterClass의 멤버변수를 사용하기가 쉬워진다. class Outer1 { inner class Inner { } } Inner Class , Outer Class 내부클래스는 외부 클래스로 부터 생성된 객체를 통해서만 객체 생성이 가능하다. 외부클래스는 내부클래스의 멤버를 자유롭게 사용할 수 없지만, 내부 클래스는 외부 클래스의 멤버를 자유롭게 사용할 수 있다. fun main () { var obj2 = Inner1() // Error } class Outer1 { inner class Inner1 { } } Kotlin: Unresolved reference: Inner1 내부클래스를 직접적으로 객체를 생성할 수 없기때문에, 에러가 발생한다. fun main () { var obj1 = Outer1() var obj2 = obj1.Inner1() } class Outer1 { inner class Inner1 { } } 외부클래스의 객체를 먼저 생성한뒤, 내부 클래스의 객체를 생성 할 수 있다. fun main () { var obj1 = Outer1() var obj2 = obj1.Inner1() } class Outer1 { val outerMember1 = 100 fun outerMethod1 () { println ( "Outer Method" ) println(innerMember1) // Error innerMethod1() // Error } inner class Inner1 { val innerMember1 = 100 fun inner...
Kotlin Generic 클래스를 만들 때, 변수를 선언하겠다고하면, val , var 를 적고, 타입을 적거나 적지 않을 수 있다. 변수를 정의를 할때는 타입을 명시적, 비명시적이라도 정의해야 한다. 자료형을 클래스를 선언할때 정하는것이 아니라, 객체를 생성할 때 결정하도록 하는것이 Generic 이다. 클래스를 설계할 때 변수의 타입을 유동적으로 할고 싶을 때 사용한다. Generic 효과 코틀린에서의 제네릭(Generic)은 타입 매개변수(Type Parameter)를 사용하여 클래스, 함수 또는 인터페이스를 정의할 때 일반화된 타입을 지정하는 기능입니다. 이를 통해 코드의 재사용성과 타입 안정성을 개선할 수 있습니다. 제네릭을 사용하면 클래스나 함수를 선언할 때 특정 타입이 아닌 일반적인 타입을 사용하며, 사용할 때 실제 타입을 지정할 수 있습니다. 예를 들어, List<T>는 요소의 타입을 T로 지정하는 리스트를 나타냅니다. 이렇게 선언된 제네릭 타입은 여러 종류의 타입에 대해 동작할 수 있습니다. fun main () { var t1 = TestClass1<Int>() t1.testMethod1( 100 ) var t2 = TestClass1<String>() t2.testMethod1( " 문자열 " ) } class TestClass1< T > { fun testMethod1 (a1: T ) { println (a1) } } 위의 예제에서 <T>는 타입 매개변수로, 어떤 타입이든 받을 수 있습니다. 함수를 호출할 때 실제 타입을 지정하여 사용할 수 있습니다: <T> 에는 아무런 문자열이 와도 되나, 일반적으로 generic 을 나타내기 위해서는 대문자 T를 사용한다.
댓글
댓글 쓰기