본문 바로가기
728x90
반응형

개발노트/Android51

[Android] Unresolved reference: Manifest 에러 해결하기 개발 환경 --------------------------------- OS : Mac 개발 툴 : Android Studio 개발 언어 : Kotlin targetSdk : 34 minSdk : 24 --------------------------------- 내가 Manifest 파일에 분명히 퍼미션을 주었는데도 퍼미션을 찾을 수 없다고 에러가 뜨는 경우가 있습니다. permission Unresolved reference 에러가 발생하였을 때는 Manifest를 제대로 못찾는건데 android.Manifest.permission.SYSTEM_ALERT_WINDOW) 위와같이 android를 붙여주면 됩니다! 2024. 4. 18.
[Android] Google play store 배포된 apk 키해시 구하기 개발 환경 --------------------------------- OS : Mac 개발 툴 : Android Studio 개발 언어 : Kotlin targetSdk : 34 minSdk : 24 --------------------------------- sns로그인 기능을 심은 android 앱을 google play store에 배포할 때 우리는 배포된 apk 의 키해시가 필요하다. project 소스에서 구하는 키해시는 업로드 인증서 지문에 대한 키해시다. 우리가 필요한건 앱서명 인증서 지문의 키해시이다. google play console에서 앱서명에 들어간 후 sha-1 인증서 지문을 복사하자 복사한 인증서 지문을 아래 명령어에 넣고 실행하면 base64로 인코딩된 키해시를 구할 수 있다.. 2024. 1. 9.
Xcode: 카메라, 갤러리 접근 권한 및 WkWebView 파일 업로드 action sheet 한글화 개발 환경 --------------------------------- OS : Mac 개발 툴 : xcode 개발 언어 : Swift xcode version : 15.0.1 min iOS version : 14.1.1 --------------------------------- 이번 포스팅에서는 iOS에서 카메라, 갤러리 접근 권한 설정 및 WkWebView 에서 파일 업로드 시 action sheet가 기본으로 영문으로 되어 있는데 이를 현지 언어로 변경할거다. 1. 카메라, 갤러리 접근 권한 설정 카메라, 갤러리 접근 권한 설정은 info.plist에서 설정한다. 이렇게 설정해두면 앱에서 사용자가 카메라, 갤러리에 접근하려 할 때 권한요청 팝업이 표시된다. info.plist source code.. 2023. 12. 5.
JS <-> Native : Java exception was raised during method invocation 에러 개발 환경 --------------------------------- OS : Mac 개발 툴 : Android Studio 개발 언어 : Kotlin targetSdk : 34 minSdk : 23 --------------------------------- js native 통신중 위와 같은 에러를 만났다 나의 경우는 Js에서 android 메서드를 호출하고 android에서 js메서드를 callback으로 바로 호출했더니 에러가 났다. 별도의 쓰레드를 태워야한다. 나는 runOnUiThread 를 사용했다. runOnUiThread { //코드 } 2023. 11. 28.
[Kotlin] 앱 알림 설정 열기 개발 환경 --------------------------------- OS : Mac 개발 툴 : Android Studio 개발 언어 : Kotlin targetSdk : 34 minSdk : 23 --------------------------------- 이번 포스팅에서는 android 앱에서 앱 설정 화면을 열어보겠다. Oreo 버전을 기점으로 이전 버전과 이후 버전의 처리 방식이 다르다. 구분해서 작업해주면 된다. fun loadSetting() { val intent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { notificationSettingOreo(this@MainActivity) } else { notificationSetting.. 2023. 11. 22.
[Android] Android ID와 Device Id의 구분 이번 포스팅은 Android Id와 Device Id에 대해 알아보려 한다. Android ID 먼저 Android Id는 기기를 처음 boot할때 무작위로 생성되는 64비트숫자이며 기기 수명동안 유지된다. 따라서 공장 초기화를 하지않는 이상 변경되지 않는 값이다. 그래서 Android id를 디바이스를 구분하는 고유번호로 사용할 수 있는데 공장 초기화를 하지 않았는데도 Android Id가 변경되는 케이스가 있다. Android 8.0 (api level 26, oreo) 에서 약간 변경사항이 있는데 Android_id값이 원래는 공장초기화 시에만 변경되었다면 이제는 앱의 서명키가 바뀌어도 변경된다. 배포되어 있는 앱의 서명키가 바뀔 일은 희박하지만 debug.apk와 release.apk의 andro.. 2023. 11. 5.
[Android] 화면 전환 시 activity가 다시 시작되는 현상 개발 환경 --------------------------------- OS : Mac 개발 툴 : Android Studio 개발 언어 : Kotlin targetSdk : 34 minSdk : 23 --------------------------------- 처음에 마주했을 때 되게 당황했던 상황이다. 화면 방향이 전환되면 webView activity가 다시 시작해서 처음 화면으로 돌아가는 것 처럼 보인다. 이때는 manifest.xml 파일에서 해당 activity에 아래의 옵션을 걸어주자 android:configChanges="orientation|keyboardHidden|screenSize" 2023. 11. 4.
[Android] onCreateWindow 이슈 해결기 개발 환경 --------------------------------- OS : Mac 개발 툴 : Android Studio 개발 언어 : Kotlin targetSdk : 34 minSdk : 23 --------------------------------- 지금 작업하는 앱은 98프로webView로 서비스하는 하이브리드 앱이다. 이 webView안에서 새창을 참 자주 여는데 어떤 창은 뒤로가기로 닫은 후 다시 열었을 때 잘 열리고 어떤 화면은 뒤로가기로 창을 닫으면 창이 더이상 안뜬다 일정 시간이 지나야 뜬다 ㅡㅡ 알아보니 webView가 해제되기까지 시간이 조금 걸리는거 같고 이 시간동안 재실행을 못하게 한다는 말도 있고 흠 여튼 이유가 어쨋든 원인은 webView가 제대로 해제되지 않았기 때문에.. 2023. 10. 30.
[kotlin] onBackPressed() deprecated 개발환경 ----------------------------------- os : windows tool : androidStdudio 언어 : kotlin ----------------------------------- 오랜만에 android 개발하면서 또 알아낸 것 onBackPressed 메서드가 더이상 사용되지 않는다고 한다. 바뀐게 많으니 재미있다.. override fun onBackPressed() { super.onBackPressed() } 원래는 이렇게 썼었다. 앞으로 back키에 이벤트를 주고 싶을 때 써야할 방식은 private val callback = object : OnBackPressedCallback(true) { override fun handleOnBackPressed(.. 2023. 9. 12.
[kotlin] build.gradle.kts viewBinding 설정 개발환경 ----------------------------------- os : windows tool : androidStdudio 언어 : kotlin ----------------------------------- 오랜만에 android 를 할랬더니 신기한게 많이 나왔다. 그 중에서 build.gradle.kts 라는 파일을 볼거다. 원래는 ViewBinding 셋팅을 android { viewBinding { enable true } } 이런식으로 했는데 안먹혀서 찾아보니 android 속성 안에 buildFeatures { viewBinding = true } 이렇게 넣어줘야 한다고 한다. 2023. 9. 11.
[Android] 소스 코드 난독화, 앱 축소, 앱 최적화 앱 축소, 난독화 및 최적화 앱을 최대한 작게 만들려면 출시 빌드에 shrink(축소)를 활성화하여 사용하지 않는 코드와 리소스를 제거해야한다. android gradle 3.4.0 이상부터는 Pro Guard가 아닌 R8을 사용한다. 필요성 android 파일을 apk나 abb파일로 추출해내면 그냥 소스코드를 압축한 것이므로 리버스 엔지니어링이 가능하다. R8 Desugaring : Java8 이상의 API에서 사용할 수 있고 R8 컴파일러는 코드에 사용된 최신 기능을 이전 Java API로 백포팅합니다. 이는 최신 기능을 이전 Java API에서도 사용할 수 있음을 말합니다. 코드 축소 : R8이 라이브러리 종속성에서 사용하지 않는 코드를 포함하여 앱에서 사용하지 않는 코드를 제거하는 단계입니다. 리.. 2023. 7. 6.
[Android] compile sdk version 33 이슈 개발 환경 --------------------------------- OS : Mac 개발 툴 : Android Studio 개발 언어 : Java targetSdk : 33 minSdk : 23 --------------------------------- android compile sdk version을 33으로 올렸더니 이전에는 문제없이 돌아가던 소스 곳곳에서 에러가 발생했다. 인터넷에 검색해보니 android의 compile sdk version을 33으로 올려서 발생하는 문제라고 한다. 1. Cannot resolve method 'setAppCachePath' in 'WebSettings' WebViewSettings에서 setAppCachePath라는 메서드를 찾을 수 없다고 한다. [해결.. 2023. 6. 29.
728x90
반응형