본문 바로가기

[Android] Cannot resolve symbol 'AndroidJUnit4' Android 테스트를 하기 위해서 Espresso를 이용하죠. dependency도 설정 했고 다시 Gradle을 받아봐도 혹시 espresso 패키지를 찾을 수 없을 경우!! Build Variants를 'release' 에서 'debug'로 바꿔 보세요. 그럼 다시 test 패키지를 이용할 수 있을 겁니다. 참고하세요. https://stackoverflow.com/a/37371171 더보기
귀하의 앱은 Android 광고 ID 사용 및 개발자 배포 계약의 4.8 조항을 위반하였습니다. xxx 개발자님, 안녕하세요.앱 이름(패키지명) 을(를) 검토한 결과 정책 위반으로 Google Play에서 앱이 삭제되었습니다. 귀하의 앱은 정책을 따르는 업데이트를 제출할 때까지 사용자에게 제공되지 않습니다.귀하의 앱은 Android 광고 ID 사용 및 개발자 배포 계약의 4.8 조항을 위반하였습니다.귀하의 앱이 개인정보나 기기정보를 다룬다면 개발자님은 유효한 개인정보 보호정책을 제공해 주셔야 합니다. 앱이 개인정보 취급방침 요구사항의 적용을 받는 Android 광고 식별자를 수집하고 전송하는 것으로 확인되었습니다. 앱이 Android 광고 ID를 수집하는 경우 Play Console의 지정된 입력란과 앱 내에서 유효한 개인정보 취급방침을 기입해주시기 바랍니다.귀하의 앱을 제출하여 검토를 받으려면 다.. 더보기
[Android] Firebase 구글 로그인 시, ApiException 12500 Firebase를 이용한 구글로그인은 참 편한 기능이다.관리하기도 편하고 아주 쉽다. 그래서, 간단하게 샘플 소스만으로 개발을 할 수 있다.샘플 소스는 아래 경로에서 받으면 된다. https://github.com/firebase/quickstart-android 구글 로그인은 구글 가이드가 잘 되어 있다.https://firebase.google.com/docs/auth/android/google-signin?hl=ko 정말 가이드 대로 하면 문제 없이 테스트를 할 수 있다. 하지만!혹시나 샘플 소스에 google-services.json 파일도 설정 하고, 구글 Firebase 콘솔에서도 설정을 다 했는데,아래와 같은 오류를 본적이 있으신 분은.. ApiException 12500 구글 Firebas.. 더보기
[Android Weekly][#344] 효율적인 LiveData와 ViewModel 테스팅 원본 : https://android.jlelse.eu/effective-livedata-and-viewmodel-testing-17f25069fcd4 Architecture Components 와 그것들을 실행할 방법에 관해 써놓은 글이 많이 있고, 테스트 능력을 향상 시켜줄 혜택 중 하나를 가지고 있다. 자 그럼, 실제로 어떻게 향상시키지? 한번 살펴 보자. Architecture Components는 Google I/O 2017에서 소개되어 졌고, 그것들은 Android 개발 세계에서 뚜렷한 향상을 의미 했다. 수 년을 걸쳐 익힌 최고의 연습들은 대부분의 공통된 문제들이 바뀌어졌고, 탄탄한 가이드(opinionated guide)를 나오게 했다. View와 ViewModel은 LiveData를 통하.. 더보기
[Android] Preferencefragment deprecated 설정 화면을 개발할 때, PreferenceFragment를 많이 사용 했습니다. PreferenceActivity에 PreferenceFragment를 설정하는 형태 였죠. class SettingsActivity : PreferenceActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) fragmentManager.beginTransaction() .replace(android.R.id.content, SettingFragment()) .commit() } class SettingFragment : PreferenceFragment() { override fun onCreat.. 더보기
[Android Studio] [Kotlin] Wild param 방지 ktlint에서 검증을 할 경우 wild param을 사용하지 말라고 되어 있지만,그게 하고 싶어서 하는게 아니라 자동으로 import를 시키면IDE에서 알아서 Wild Param을 넣어버린다. Wild param은 아래와 같이 import를 *로 묶어서 사용한 경우를 말합니다. Android Studio에서 Wild Param을 방지하는 방법을 공유하고자 합니다. 1. Android Studio -> Prefrences 탭을 연다. 2. Editor -> Code Style -> Kotlin3. 아래 화면 같이 Use impor with '*' when at least 100 names used 로 설정 위와 같이 설정 하면 적어도 100개 이상 똑같은 패키지에서 import를 할 시 Wild Para.. 더보기
[Kotlin] [ktlint] BUILD FAILED ktlint에 대해 궁금하신 분은 커리님이 작성해 놓으신 블로그를 보시면 됩니다.https://www.androidhuman.com/lecture/kotlin/2016/09/06/ktlint_on_android/ ktlint는 코딩 스타일을 검토해주는 오픈 소스 입니다.https://github.com/shyiko/ktlint ktlint 실행하면 아래와 같이 빌드 실패라는 화면을 보게 된다. Ktlint 관련 이슈가 목록에 나오지만, 저 같은 경우 왜 ExecException이 발생하는지 원인을 알고 싶었습니다. 이 글을 쓰는 이유도 혹시 저같이 바보(?) 같은 생각을 하시는 분들이 있으실까봐 공유 드립니다. ktlint에서 알려준 이슈를 전부 수정 해라!!! 그럼 위와 같이 BUILD SUCCESSF.. 더보기
[Kotlin] For loop vs Foreach Kotlin 에서 반복문을 사용할 때 For loop를 쓸 것인지, 아니면 Foreach를 쓸 것인지 고민한 적이 있으신 분은아래 내용을 참조 하면 좋을 듯 하다. 1. IntRange를 사용한 경우는 For loop 2. Collection (Sequence나 list등)을 사용한 경우는 Foreach3. 반복문 사이에 continue 나 break를 사고자 할 경우는 For loop참고 : https://medium.com/@elye.project/kotlin-for-loop-vs-foreach-7eb594960333 여기서 추가 사항! Android 테스트를 하다가 Foreach 를 사용 했을 때, 분명 전체 반복은 돌았는데 Log로는 몇개만 찍혀서 나오는 경우를 본 적이 있다. 예를 들어 List.. 더보기