일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 안스
- 안드로이드 스튜디오
- WebView
- GIT
- ADB
- build
- 코루틴
- dart
- coroutine
- 에러
- 의존성주입
- MVVM
- studio
- 유튜브
- 코틀린
- 깃헙
- 웹뷰
- 안드로이드
- Github
- Retrofit
- image
- RecyclerView
- Gradle
- 레트로핏
- viewpager
- error
- Android
- 스튜디오
- Kotlin
- 안드로이드스튜디오
- Today
- Total
목록안드로이드 (148)
코딩하는 일용직 노동자
외부에서 스키마(Scheme)을 전달받아 특정 액티비티로 바로 연결해주는 작업을 하는 경우가 많습니다. 보통 아래처럼 scheme 과 host를 셋팅합니다. 추가로 pathPrefix 를 설정할 수 있지만 안하는 경우도 많습니다. 이경우 "testapp://event/list" 이런 형태로 전달받게 되면 해당 액티비티로 연결해주게 됩니다. 이걸 테스트할때 adb 명령어를 이용해서 테스트 할 수 있습니다. 아래처럼 터미널창에서 입력하면 됩니다. adb shell am start -W -a android.intent.action.VIEW -d "scheme://host?param1=value1" 앱패키지명 ex) adb shell am start -W -a android.intent.action.VIEW -..
Android Studio 에서 사용하지 않는 리소스를 검색하고 제거하는 방법입니다. Android Studio 의 상단 메뉴바에서 [Code] > [Inspect Code...]를 선택합니다. 그럼 Android Studio 하단 [Inspection Results] 메뉴에 Inspection 결과가 보입니다. 사용하지 않는 리소스는 [Android Lint] > [Performance] > [Unused resources] 항목에서 확인할 수 있습니다.
안드로이드 스튜디오를 최신 Arctic Fox 로 업데이트 하고 gradle 버전을 7로, JDK를 11로 업데이트 한 후 앱을 빌드하니 아래의 오류가 발생합니다. Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8 아직 빌드 설정상에 JDK 버전이 1.8로 되어 있는듯 합니다. 우선 [Project Structure] > [SDK Location] 메뉴에서 [JDK location was moved to Gradle Settings.] 를 누릅니다. 그리고 [Gradle JDK:] 에서 JDK 버전을 11로 선택해줍니다. 다시 빌드해보면 정상적으로 빌드가 되는것을 확인 할 수 있습니다.
안드로이드 스튜디오의 새로운 버전인 Arctic Fox 를 설치했습니다. 그러니 gradle 7.0 을 설치하라고 해서 설치하고 JDK 11 버전이 필요하다고 해서 겨우겨우 설치했습니다. 간신히 빌드를 하려는데 처음보는 에러가 발생했습니다. Manifest merger failed : android:exported needs to be explicitly specified for . Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://devel..
다른 개발자와의 협업중에 그분에게서 전달받은 소스파일을 덮어씌워서 작업하다 보니 기존에는 발생하지 않았던 컴파일 오류가 발생했다. The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-30). clean 을 해보고 빌드를 다시 해봐도 계속 문제가 발생했다. compileSdkVersion 을 31로 변경해서 빌드해봐도 계속 발생했는데 app/build.gradle 에 아래의 처리를 추가해서 해결했다. configurations.all { ..
서비스중인 앱에 구글 인앱상품을 만들고 결제기능을 앱에 추가하는 업무를 맡아 작업하면서 생각보다 구글 결제를 셋팅하는게 까다롭다는것을 느꼈습니다. 구글링을 해보면 BillingClient 를 이용해 결제를 시도하는 소스는 많은데 막상 테스트를 해보니 결제가 되지 않고 결제거부가 되었습니다. 분명히 앱의 인앱상품을 생성해서 등록을 해놨는데도 결제가 실패되었습니다. 이번 포스팅에서는 구글결제(Billing)을 구현하기 위해 플레이스토어 콘솔과 구글 클라우드플랫폼 에서 셋팅하는 것을 정리해보았습니다. #1 앱등록 만약 등록한 앱이 Billing 권한이 없다면 구글 플레이스토어 콘솔에 들어가서 [수익 창출] > [제품] > [인앱 상품] 을 들어가보면 아직 인앱 상품이 없다는 메세지가 보입니다. 우선 인앱상품을..
안드로이드 개발중 경험한 에러와 해결방법을 공유합니다. 앱실행 중에 아래와 같은 에러가 발생하면서 앱이 죽었습니다. java.lang.IllegalStateException: Must be called from main thread of fragment host Fragment에서 부모 Activity로 ViewPager의 페이지 이동을 시키려고 하는데 에러가 났습니다. public class AndroidBridge { @JavascriptInterface public void OnAppEvent(String data) { switch (event) { case "move_to_main": Fragment_Main.getInstance().mViewPager.setCurrentItem(1); break..
안드로이드 스튜디오를 Arctic Fox 로 업데이트 해보니 파일검색창이나 소스검색창, git로그창에서 한글이 깨져보이는 현상이 발생했습니다. 구글링을 해보니 안드로이드 스튜디오가 업데이트 될때 이런일을 겪는 개발자가 상당히 많은듯 합니다. ^^;; 우선 다음의 경로로 가서 현재 폰트를 확인해줍니다. Preference > Editor > Font 에 가서 확인해봤지만 큰 문제는 없어보입니다. Preference > File Encodings 에 가보니 모두 정상적으로 UTF-8 로 인코딩 설정이 되어 있었습니다. 마지막으로 Appearance 메뉴를 가봅니다. Preference > Appearance 메뉴에서 Use custom font 를 체크하고 Apply 를 눌러줍니다. 다시 소스검색창을 확인해..
기존 안드로이드앱 APK파일을 플레이스토어에 등록할때는 수동으로 서명(signing)을 해서 올리는 방법을 사용했습니다. 때문에 개발자PC에서 키스토어파일(.jks, .keystore)을 만들어서 직접 관리를 했습니다. 간혹 이 키스토어파일을 분실하는 경험을 하는 개발자도 있는데, 이럴경우 버전업된 앱을 플레이스토어에 등록할 수 없기 때문에 매우 난처한 상황이 됩니다. 몇년전부터 플레이스토어 콘솔에 새로운 앱서명 방식이 적용되었습니다. 그동안은 이 기능을 사용해도 그만 안해도 그만이었고, 이 기능을 모르는 개발자도 많았습니다. 최근에 새로운 앱을 등록하면서 저도 이 기능을 처음 써보게 되었습니다. 새로운 앱 서명 방식은 구글이 서명키를 직접 관리하는 방식입니다. 우선 기존처럼 개발자의 PC에서 앱을 서명..
회사에서 상용버전의 앱을 운영하는 경우나, 상용버전과 개발버전을 앱에 다 설치하고 테스트하려는 경우 패키지명을 바꿔서 테스트를 하는 불편함이 있었습니다. 이럴경우 gradle 에서 상용버전과 개발버전의 패키지명을 쉽게 바꿀수 있는 옵션을 이용하면 편리합니다. #1 app레벨의 gradle 파일에 옵션 추가하기 아래처럼 buildTypes 의 debug 에 applicationIdSuffix ".dev" 을 추가하면 debug 모드로 빌드할때는 기본적인 패키지명 뒤에 .dev 가 붙게 됩니다. #2 매니페스트 앱이름 등 바꿔주기 한 기기에 상용버전과 개발버전의 앱을 다 설치해야 하기 때문에 manifestPlaceholders 를 이용해서 앱이름과 아이콘을 나눠주도록 아래 처럼 추가합니다. 또한 manif..