목록Android (39)
Wook No.1
java.lang.IllegalArgumentException: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. 안드로이드 targetSdk 12를 사용할때 PendingIntent 사용하게되면 위와 같은 에러가 발생할수 있다. 그래서 targetSdk 12를 사용할때는 아래와 같이 PendingIntent를 구현해야 한다. val pendingIntent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { PendingIntent.getActivity(this, 0, n..
어떤 간단한 데이터를 서버에서 받고 싶은데 서버를 구축하기엔 너무 과하거나 할때 Firebase의 "Remote Config"를 활용하면 편리할 수 있다. https://console.firebase.google.com/ 1. Firebase Remote Config 설정 2. Remote Config 매개 변수 추가 3. Remote Config 사용 코드 작성 https://firebase.google.com/docs/remote-config/get-started?platform=android Firebase 원격 구성 시작하기 | Firebase Documentation 의견 보내기 Firebase 원격 구성 시작하기 iOS+ Android 웹 Flutter Unity C++ Firebase 원격 ..
Fragment 전환 시 Exception 원인 Fatal Exception: java.lang.IllegalStateException Can not perform this action after onSaveInstanceState onSaveInstanceState 함수가 호출된 상태에서 Fragment commit 함수를 호출 했을 때 발생 하는데 onSaveInstanceState는 Activity 에게 현재 상태를 Bundle 형태로 저장 시킬수 있는 함수다. onSaveInstanceState 함수가 호출된 이후에 Fragment 전환이 발생한다면, onSaveInstanceState 함수를 통해 결정되는 복구 시점과 다르기에 해당 FragmentTransaction에 대해서는 복구할 수 없게..
Bitmap.compress 할때 세로 이미지가 가로로 회전되는 이슈가 있다. compress 할때 Exif 회전 값이 사라지는것 같다. 그래서 compress가 완료되면 Exif 정보를 다시 저장 시키는 방식으로 해결했다. // 기존 Exif Orientation 정보 조회 var savedBitmap = BitmapFactory.decodeFile(fileName) val oldExifOrientation = ExifInterface(fileName).getAttribute(ExifInterface.TAG_ORIENTATION) // 비트맵 수정 작업 var modifiedBitmap: Bitmap? = null 사이즈 변경, 이미지 편집 등... // 수정된 비트맵 저장 var fosObj = Fi..
빌드를 위해 ./gradlew app:assembleRelease 를 했지만 빌드가 되지 않았다 Could not create service of type FileAccessTimeJournal using GradleUserHomeScopeServices.createFileAccessTimeJournal... 관련 에러가 발생하면서... (다른 빌드를 하다가 강제 종료해서 발생하는것으로 보인다) Owner PID: 3516 Our PID: 2126 Owner Operation: ... 해결방법 Owner PID를 kill 해준다. sudo kill -9 {Owner PID}
안드로이드 스튜디오를 업데이트 하면 기존에 보이던 오른쪽 gradle task가 사라진다. ㅠ 다시 보이게 하기 위해 아래와 같이 하면 된다. Android Studio -> Preferences -> Expermental do not build Gradle task list during Gradle sync 를 체크 해제 후 File - Sync Project with Gradle Files 를 한번 실행시켜 주면 된다.
RecyclerView addScrollListener 등록 abstract class EndlessRecyclerViewScrollListener(val layoutManager: LinearLayoutManager, private val startingPageIndex: Int = 0) : RecyclerView.OnScrollListener() { private val visibleThreshold = 5 private var currentPage = 0 private var previousTotalItemCount = 0 private var loading = true init { currentPage = startingPageIndex } override fun onScrolled(view: R..
CameraX로 카메라 앱 만들기 Gradle 종속성 추가 build.gradle(app) dependencies { def camerax_version = "1.1.0-beta01" implementation "androidx.camera:camera-core:${camerax_version}" implementation "androidx.camera:camera-camera2:${camerax_version}" implementation "androidx.camera:camera-lifecycle:${camerax_version}" implementation "androidx.camera:camera-video:${camerax_version}" implementation "androidx.camer..