Kotlin 41

[Kotlin] Android studio JDK 버전 변경하는 방법

원래는 따로 JDK 버전을 설정한 적이 없었는데 최근에 11 을 썼다가 1.8 까지 내려가야 해서 해당 버전을 수정해주는 일이 있었다. File > Settings... 로 이동 Build > Gradle 로 이동 나는 초기에 Build 탭이 따로 보이지 않아서 검색해서 해당 탭으로 이동했다. 그 이후에는 잘보이긴 했는데 안보이면 당황하지말고 검색기능을 사용하자. 나는 JAVA_HOME 이라는 환경변수로 설정한 것을 사용했는데 Add JDK 나 Download JDK 를 이용해서도 사용할 수 있다. 밑에 있는 11버전 ,1.8 버전 등이 해당 기능을 이용해서 추가한 거였다. 보면 1.8, 1.8 (2) 뭐 이렇게 다양한 걸 볼 수 있는데 당연히 해당 작업을 해줘도 변경이 안된적이 있다 ^_^ 그래서 이짓..

Kotlin 2024.04.08

[Kotlin] A problem was found with the configuration of task

A problem was found with the configuration of task ':app:checkDebugManifest' (type 'CheckManifest') [Kotlin] com.android.ide.common.signing.KeytoolException 해당 에러를 해결하면서 첨부한 링크의 에러도 발생했었는데 .. 나랑 똑같은 상황을 겪고있다면 위의 링크도 한번 확인해보면 도움이 될 수도 있을 것이다 :) 해당 에러도 하도 오래된 프로젝트의 유지보수를 진행하면서 발생했던 거였는데 com.android.tools.build.gradle 의 버전을 변경해주면서 에러를 해결하였다. // 3.5.4 -> 4.2.0 classpath 'com.android.tools.build:grad..

Kotlin 2024.04.08

[Kotlin] com.android.ide.common.signing.KeytoolException

com.android.ide.common.signing.KeytoolException: Failed to read key AndroidDebugKey from store "경로": Invalid keystore format 최근에 버전이 매우 낮은(JDK 1.8 오랜만에 써보는 ... ) 프로젝트를 진행하다 보니 .. JDK 버전 낮추고 .. 이런저런 라이브러리 충돌나고 .. 이래서 버그를 열심히 잡던 도중에 .. 해당 에러때문에 스트레스를 조금 받았는데 해결방법은 매우 간단하다. 메시지에 표시된 경로로 가서 debug.keystore 를 제거하고 툴 재실행시켜보면 문제없이 실행된다.

Kotlin 2024.04.08

[Kotlin] NanoHTTPD 사용방법

📱테스트 환경 Samsung Galaxy Tab Advanced2 [Kotlin] WebView Input 파일 선택 여기에 이어서 .. 이미지를 이제 Web 으로 보내줘야하는데 .. 문제가 Content API 이미지 주소는 보안상 사용할 수가 없다. 그래서 이걸 보안에 걸리지않도록 보내줘야하는데 .. Base64 로 바꿔서 보내주니까 용량이 커질수록 너무 느려져서 문제였다. 사진은 그나마 좀 괜찮았는데 영상은 아주 끔찍한 유저 경험이라 할 수 있다. 그래서 생각해낸 방법이 Android 에서 Web 처럼 주소를 띄워놓고 그걸 Web 에서 받아 blob 로 변환해서 저장하는 방식을 생각했다. 그래서 사용한게 NanoHTTPD 인데 사용방법이 생각보다 간단해서 선택하게 되었다. // build.grald..

Kotlin 2024.04.03

[Kotlin] WebView Input 파일 선택

📱테스트 환경 Samsung Galaxy Tab Advanced2 Android WebView 에서 를 클릭하면 놀랍게도 파일선택기가 열리지 않는다. 파일선택기를 통해서 파일을 선택하려면 createChooser 를 이용해야 한다. 근데 웹상에 워낙 이상한 안되는 코드들이 많이 돌아다니다 보니 .. 쉽지가 않다 .. 나도 거기에 속아서 작성한 코드들이 엉망진창이여서 작동을 안하다 보니 오래걸렸다. 일단 ChromeClient 기본적인 세팅은 했다고 가정하고 파일을 선택하기 위해서는 onShowFileChooser 를 사용해야한다. override fun onShowFileChooser( webView: WebView?, filePathCallback: ValueCallback?, fileChooserPa..

Kotlin 2024.04.03

[Kotlin] onBackPressed deprecated ... -> OnBackPressedCallback

📱테스트 환경 Samsung Galaxy Tab Advanced2 몇개월 전까지만 해도 .. onBackPressed 를 통해서 뒤로가기를 재정의했는데 .. 올해 다시 앱개발 하게 되어서 쓰려고 보니 왠걸 .. ? deprecated 돼었다고 한다 .. OnBackPressedCallback 해당 함수가 대체할 메서드라고 하는데 나는 되게 간단하게 이용했지만 자세하게 알고싶다면 자세한 내용은 공식 홈페이지 가면 알 수있다. https://developer.android.com/guide/navigation/navigation-custom-back?hl=ko 맞춤형 뒤로 탐색 기능 제공 | Android 개발자 | Android Developers 이 페이지는 Cloud Translation API를 통해..

Kotlin 2024.03.22

[Kotlin] screenOrientation - 가로모드, 세로모드

📱테스트 환경 Samsung Galaxy Tab Advanced2 개발하는 도중 화면이 어떻게 보여야하는지 정할때가 있는데 그때 사용하는 것이 screenOrientation 이다. 이런식으로 landscape 를 적용해주면 가로모드로 고정된다. 이외에도 여러 옵션들이 있는데 unspecified : 기본값 portrait : 세로모드 reverseLandscape : 가로모드 반대방향 reversePortrait : 세로모드 반대방향 이외에도 여러 옵션이 있긴 하지만 이정도만 알고있어도 괜찮을것 같다는 생각이 있지만 필요한 옵션이 다르다면 더 찾아보면 많이 지원하니까 찾아보면 된다.

Kotlin 2024.03.22

[Kotlin] Android <-> Javascript 데이터 전송하기

📱테스트 환경 Samsung Galaxy Tab Advanced2 와 진짜 .. 이것때문에 몇일동안 크롤링만 한것 같다. 구글에 있는 블로그 글이랑 스택오버플로우 안본게 없는 것 같다 ㅋㅋ 다들 된다고 하지만 나는 안돼서 진짜 너무 우울하고 슬픈 와중에 겨우 해냈는데 다른사람들도 나처럼 시행착오를 겪었을 때 도움이 되거나 내가 나중에 또 다시 볼 수 있도록 기록을 하려고 한다. START ! Javascript 에서 Kotlin 함수 호출 @JavascriptInterface fun getOS(): String? { return System.getProperty("os.name") } webView.addJavascriptInterface(WebAppBridge(context), "AppAPI") @Ja..

Kotlin 2024.03.19

[Kotlin] 안드로이드 UUID 확인하는 방법

📱테스트 환경 Samsung Galaxy Tab Advanced2 fun getUUID(context : Context) : String { return Settings.Secure.getString(context.contentResolver, Settings.Secure.ANDROID_ID) } 코드로 말고도 핸드폰 설정 창에서도 확인할 수 있는데 방법은 다음과 같다. [Kotlin] UUID 란 ? UUID 생성 하는 방법 [Kotlin] UUID 란 ? UUID 생성 하는 방법 val randomUUID: UUID = UUID.randomUUID().toString() // 결과 : f47ac10b-58cc-4372-a567-0e02b2c3d479 이런식으로 랜덤으로 된 고유한 값을 받고싶을 때 U..

Kotlin 2024.03.16