LANGUAGE/ANDROID
-
[Android] Room cannot verify the data integrityLANGUAGE/ANDROID 2021. 5. 18. 11:52
새로운 기능 개발 하는 도중에 새로 추가한 DB 구조르 변경해야 할 경우가 생긴다. 그럴때 만날 수 있는 에러가 아래와 같다. java.lang.IllegalStateException: Room cannot verify the data integrity. Looks like you've changed schema but forgot to update the version number. You can simply fix this by increasing the version number. 해결 방법으로는 버전명을 올리고 fallbackToDestructiveMigration() 를 사용하는 방법이 있다. 하지만 개인적으로 새로운 기능에 들어가는 부분이라 버전 정보를 올리고 싶지 않은 마음이 있었다. 그래서..
-
[Android] java.lang.IllegalArgumentException: Service not registered: com.google.android.gms.measurement.internal.zzji@xxxLANGUAGE/ANDROID 2020. 10. 16. 14:15
2020년 11월 15일 이후 부터는 이전 버전의 Fabric SDK의 지원이 중단된다. 그래서 최신버전의 Firebase Crashlytics SDK로 업데이트를 진행했다. https://firebase.google.com/docs/crashlytics/upgrade-sdk?platform=android Firebase Crashlytics SDK로 업그레이드 iOS Android Unity 이제 새로운 공식 Firebase Crashlytics SDK를 사용하여 앱에서 Crashlytics를 설정할 수 있습니다. 이 SDK는 다른 Firebase 제품과의 일관성이 향상되었고 보다 직관적으로 사용할 수 있는 개선� firebase.google.com 업데이트 작업은 변경사항은 많지 않아 적용에는 큰 어..
-
[Android] Webview Geolocation 사용하기LANGUAGE/ANDROID 2020. 8. 24. 19:01
안드로이드 웹뷰를 통해 지도앱이나 위치정보를 사용하는 웹페이지를 이용할 경우가 있는데 단말기의 GPS를 통해 얻은 위치정보를 전달해줘야 합니다. 별 다른 웹뷰 설정이 안되있는 상태라면 위 이미지의 좌측 상단의 현재위치 버튼 클릭시 정상 동작을 하지 않을 것입니다. - Geolocation 웹에서는 HTML5 Geolocaion API를 사용하여 위치정보를 요청합니다. 그럼 안드로이드 웹뷰에서는 아래와 같은 코드 설정을 통해 응답처리가 가능합니다. webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setGeolocationEnabled(true); webView.setWebChromeClient(new WebChromeClien..
-
외부 라이브러리 추가시 AndroidManifest.xml 병합LANGUAGE/ANDROID 2020. 7. 8. 16:48
최근 외부 업체 라이브러리를 추가하여 기능 개발중 전혀 연관없는 공인인증서 복사 부분에서 에러가 발생하였다. 라이브러리 추가 전 브랜치 코드에서는 정상적으로 동작하여 이번 작업중 영향을 미칠 부분을 찾아보니 AndroidManifest.xml이 가장 유력하였다. 상용 서비스들은 대다수 현재 app 소스 말고도 여러 라이브러리들을 쓰고 있다. 그런 여러 라이브러리에 있는 AndroidManifest.xml을 포함하여 APK를 만들때 하나의 AndroidManifest.xml을 만든다. 나의 경우 파일 저장이 안되는 문제여서 android.permission.WRITE_EXTERNAL_STORAGE 쪽 영향이 있을것이라 예상되었다. 라이브러리의 AndroidManifest.xml를 확인해 보니 해당 퍼미션에..
-
[Kotlin] object 익명 클래스, 무명 객체 [anonymous object] 에서 View 접근하기LANGUAGE/ANDROID 2020. 6. 19. 13:41
화면에 다이얼로그를 띄우기 위해 아래와 같이 코드 작성을 했습니다. (TestDialog는 DialogFragment를 상속받습니다.) TestDialog().apply { arguments = bundle onTestListener = object : TestDialog.OnTestListener { override fun onTestClick() { textView.text = "Click Event" } } show(supportFragmentManager, "TestDialog") } 실행 시켜보면 아래와 같은 NullPointException이 발생합니다. java.lang.NullPointerException: Attempt to invoke virtual method 'android.view..
-
FCM Android Backgroud (feat. app launch)LANGUAGE/ANDROID 2019. 7. 26. 16:38
1. Notification만 있는 경우 잠자기 상태나 절전상태인 경우에도 알림창에 표시됨 백그라운드 상태인 경우 시스템을 통해 알림 표시 포그라운드 상태인 경우 onMessageReceived를 통해 처리 2. Notification과 data가 함께 있는 경우 포그라운드 상태는 1번과 동일. 백그라운드 상태인 경우 시스템을 통해 알림은 표시되지만 onMessageReceived 통해 data가 전달되지 않음. Notification을 터치하면 앱이 실행되며 getIntent를 통해 data 수신. * Notification을 터치 시 앱은 Main 액티비티를 실행. 특정 액티비티를 실행 하기 위해서는 FCM 페이로드 부분에 "click_action" 추가한다. ex) "click_action":"OP..
-
[Flutter] 설치 및 Android SDK Custom path 사용시 에러LANGUAGE/ANDROID 2019. 4. 8. 14:14
요즘엔 비용절감을 위해서라도 Cross Platform으로 개발하려는 경우가 많은것 같다. 그래서 자그마한 호기심으로 최근 구글에서 나온 Flutter를 한번 실행해보기로 했다. 하지만 한번에 되지 않아서 그 과정을 기록한다. - 아래 내용은 블로깅을 위해 준비하며 진행했던 것이 아니라, 스샷을 다 찍진 못했고 기억을 되새기면서 진행된것임을 염두해두자. Flutter 다운로드 https://flutter.dev/docs/get-started/install Install Select the operating system on which you are installing Flutter: flutter.dev 위 페이지에서 SDK를 다운받고 옆 카테고리에 나와있는 튜토리얼을 따라하면 된다. 안드로이드 스튜디오..
-
기존 Android Studio 프로젝트에 .so 파일 추가 및 사용 과정기!LANGUAGE/ANDROID 2019. 1. 29. 19:11
Android Library 프로젝트에 외부 오픈소스를 사용하게 되면서 해당 오픈소스의 .so 파일을 사용해야 하는 경우가 생겼다. 라이브러리가 jar파일 형태로 나와야 하기에 Gradle dependencies에 추가하지 않고 직접 오픈소스 파일을 추가하였다. 아래는 Test프로젝트에 .so파일을 추가하는 과정이다. 해당 글은 단순 기록의 의미이며 so파일 적용만을 위한 글이다. 그래서 실제 ndk, jni 사용법과 내용이 다를수 있다. 추후 ndk 관련 공부를 하게 되면 수정을 할 예정이다. 사용한 오픈소스는 루팅 체크하는 기능이다 https://github.com/scottyab/rootbeer 1. SDK의 ndk 관련 tool을 설치한다.(CMake, LLDB, NDK) (CMake는 이번 내용..