본문 바로가기

코틀린

(6)
[Android/Kotlin] javax.net.ssl.SSLPeerUnverifiedException: Hostname not verified 오류 해결 retrofit을 사용하여 aws에 올려놓은 spring 서버와 연결하는 중에 제목과 같은 오류가 떴다. 구글링 해보니 해당 문제는 안드로이드가 보안의 강화로 연결을 막는 경우였다. 정확히 말하자면 신뢰가 불가능한 서버라고 판단되면 호출을 하지 못하게 하는 것이다. 이것을 해결하기 위해 OkHttpClient에 hostnameVerifier를 이용해서 HTTPS conn에 대한 response 인증이 request hostname에 적용되는지 확인하는 데 사용되는 verifier를 설정했다. val client: OkHttpClient = OkHttpClient.Builder() .addInterceptor(interceptor) .hostnameVerifier( HostnameVerifier { hos..
[Android/Kotlin] java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.LayoutInflater android.view.Window.getLayoutInflater()' on a null object reference 오류 해결 binding 처리를 해놓은 activity를 실행하는데 제목과 같은 오류와 함께 강제 종료 되었다. 오류가 났던 코드 class FormActivity : AppCompatActivity() { private lateinit var binding = ActivityFormListBinding.inflate(layoutInflater) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(binding.root) } 고친 코드 class FormActivity : AppCompatActivity() { private lateinit var binding : ActivityFo..
[Android/Kotlin] Retrofit2 설정부터 코드까지 1. build.gradle 에 추가 //Retrofit implementation "com.squareup.retrofit2:retrofit:2.9.0" implementation "com.squareup.retrofit2:converter-gson:2.9.0" implementation "com.squareup.retrofit2:adapter-rxjava2:2.9.0" 2. manifest 파일에 internet permission 추가 **주의할 점 만약 직접 기기를 연결해서 테스트 중이라면 기기도 인터넷에 연결되어 있어야 한다. 3. data class 에 response 받을 데이터 정의 data class PostListResponse( @SerializedName("isSuccess") va..
[Android/Kotlin] java.lang.ClassCastException: java.lang.Integer cannot be cast to com.google.android.gms.maps.SupportMapFragment 오류 해결 Fragment에 GoogleMap을 구현하는 도중 생긴 오류 fragment_map.xml MapFragment.kt private lateinit var mapFg: SupportMapFragment lateinit var binding: FragmentMapBinding override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { binding = FragmentMapBinding.inflate(inflater, container, false) mapFg = R.id.shop_map as SupportMapFragment; //오류 난 부분 mapFg.on..
[Android/Kotlin] Fragment에서 GoogleMap 사용하기 GoogleMap API KEY 발급과 해당 Fragment는 이미 구현한 상태부터 시작한다. 1 step) build.gradle에 dependencies 추가 implementation 'com.google.android.gms:play-services-location:19.0.1' implementation 'com.google.android.gms:play-services-maps:18.0.2' 버전은 최신 버전으로 높여서 써도 상관없다. 2 step) 해당 Fragment XML에 FragmentContainerView를 이용해 GoogleMap을 구현한다. name 속성을 아래와 같이 적어야 한다. fragment_map.xml 3 step) 이제 fragment.kt 클래스 파일에서 코드 구..
[Android/Kotlin] BottomNavigationView와 ViewBinding 안드로이드 어플에서 하단에 위치한 바 형태의 메뉴탭을 만들고 클릭하면 화면이 전환되도록 해보자. # xml res - New - Android Resource Directory 클릭하면, 아래와 같은 창이 뜬다. 여기에서 Resource type을 menu로 선택하고 Okay를 누르면 아래와 같이 menu 디렉토리가 생성된다. menu 디렉토리에 자신이 원하는 이름으로 xml 파일을 하나 만들어서 커스텀하면 된다. (ex. bottom_nav_menu.xml) 이런 식으로 아이템을 만들면 바텀 네비게이션 안에 하나의 메뉴로 들어가게 된다. 이제 layout에서 이 메뉴를 입혀주어야 한다. activity_main.xml 여기까지 하면 하단에 bottom navigation bar는 생겼다. 그런데 내가 ..