목록Android (39)
Wook No.1
로그인 / 인증 사용을 할때 반복적인 API 요청을 막거나 휴먼 확인을 위해 reCAPTCHA를 사용한다. reCAPTCHA 사이트 등록 https://www.google.com/recaptcha/admin 리캡챠(reCAPTCHA) 가입을 진행 공개키와 비밀키만 확인하면 정상적으로 진행이 완료 SafetyNet API 종속성 추가하기 apply plugin: 'com.android.application' ... dependencies { compile 'com.google.android.gms:play-services-safetynet:17.0.0' } reCAPTCHA API 사용하기 SafetyNet.getClient(this).verifyWithRecaptcha(YOUR_API_SITE_KEY) ..
Android API Level 32를 빌드하기 위해서는 Gradle JDK 를 11로 올려야 한다. 안드로이드 스튜디오를 범블비로 업데이트 하면 스튜디오에서 기본 JDK를 11을 지원해 주기 때문에 별도로 설치 할 필요는 없지만 스튜디오를 범블비로 업데이트 하기 싫거나 ./gradlew 로 빌드하려 할때는 JDK 11을 설치하여 경로 설정을 해주면 된다. jdk 설치 https://wookno1.tistory.com/34 안드로이드 스튜디오 설정 app -> Open Module Settings -> SDK Location -> Gradle Settings. -> Gradle JDK 설정 gradlew 로 빌드 시 # Debug Build ./gradlew assembleDebug -Dorg.gradl..
androidx core 버전을 업데이트 했더니 기존에 잘 사용했던 by lazy, scope function을 사용하면 Error가 발생했다. dependencies { ... implementation 'androidx.core:core-ktx:1.7.0' ... } Unresolved reference: lazy Unresolved reference: run Unresolved reference: apply Unresolved reference: let Unresolved reference: alos 해결방법은 androidx core 를 다시 1.5.0 이하로 낮추거나 dependencies { ... implementation 'androidx.core:core-ktx:1.5.0' ... } b..
Build Gradle SDK 31로 업데이트 할때 buildToolsVersion 31.0.0 으로 업데이트 하면 아래 에러가 발생할수 있다. Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager. 해결방법은 2가지 인데 1. SDK 다운그레이드 compileSdkVersion 30 buildToolsVersion "30.0.3" Tools -> SDK Manager Android API 31 체크 해제 2. dx, dx.jar 파일로 변환 d8 -> dx d8.jar -> dx.jar cd ~/Library/Android/sdk/build-tools/31.0.0 && mv d8 ..
내부 저장소 getFilesDir() : 앱과 고유하게 연결된 파일 시스템의 디렉토리를 표시하는 File 개체를 반환 getDir(name, mode) : 앱의 고유한 파일 시스템 디렉토리 내에 새 디렉토리를 생성하거나 기존 디렉토리 오픈 getCacheDir() : 앱과 고유하게 연결된 파일 시스템의 캐시 디렉토리를 표시하는 File 개체를 반환 (이 디렉토리를 임시파일용으로 정기적으로 지워야하고, 디스크 공간이 부족해지면 시스템에서 알아서 삭제함) private fun saveInternalStorage(context: Context, fileName: String, bitmap: Bitmap) { val INTERNAL_STORAGE_IMAGE_FOLDER = "imgDIr" val storageD..
App Bundle: aab 확장자를 가진 파일로, 기기에 앱이 최종 설치될 때 해당 기기의 CPU, screen density, 그리고 language를 고려하여 꼭 필요한 데이터만 다운받아질 수 있도록 하기 위한 새로운 빌드 방법이다. 플레이스토어에 앱을 aab로 등록하기 위해서는 Play App Signing이 필수이다 기존 gradle에서 아래 내용 추가하여 bundle파일명을 수정할수 있다 defaultConfig { ... archivesBaseName = "bundleApp" } ... tasks.whenTaskAdded { task -> if (task.name.startsWith("bundle")) { def renameTaskName = "rename${task.name.capitali..
EditText 영역을 클릭 하면 해당 영역을 가리는 이슈가 있다. 대부분 AndroidManifest에 windowSoftInputMode 옵션 adjustResize 혹은 adjustPan으로 해결이 되지만 이걸로도 해결 안되는 경우가 생긴다. 이유가 뭔지;;;; 아래 이슈에 대한 해결방법이다. http://stackoverflow.com/questions/7417123/android-how-to-adjust-layout-in-full-screen-mode-when-softkeyboard-is-visible/19494006#19494006 (usableHeightSansKeyboard/4)) { // keyboard probably just became visible frameLayoutParams...