본문 바로가기

Android90

안드로이드 14 java.lang.SecurityException: Writable dex file '/data/data/packageName/code_cache/.overlay/base.apk/classes3.dex' is not allowed. 안드로이드 14를 넘어오면서 앱을 빌드해서 테스트폰에 실행 후 두번째 앱 빌드부터 에러가 발생하며 팅기는 현상이 발생했다. dex파일이 읽기/쓰기가 가능해서 보안문제가 발생 한 것 같습니다. dex파일을 읽기전용으로 변경해줌으로 오류가 해결되었습니다. 앱을 한번 삭제 후 해당 코드를 적고 재빌드 해주시면 됩니다. val dexOutputDir: File = codeCacheDir dexOutputDir.setReadOnly() 2024. 2. 7.
안드로이드 뷰페이져 인디케이터 사용해보기 인디케이터는 배너광고같은 뷰페이져에 있어서 밑에 점처럼 생겨서 현재 몇번째 이미지를 보여주고있는지 보여주는 역할을 합니다. 이런식으로 밑에 검은 점같은게 보이나요? 이런식으로 표기해줄수있습니다. 프래그먼트에도 많이 사용하십니다. 우선 뷰를 그릴 클래스를 하나 추가하겠습니다. class IndicatorView: LinearLayout { private var mContext: Context? = null private var mDefaultCircle: Int = 0 private var mSelectCircle: Int = 0 private var imageDot: MutableList = mutableListOf() private val temp = TypedValue.applyDimension( /.. 2023. 3. 29.
안드로이드 targetSdk 33 onbackpressed deprecated onbackpressed가 33부터 deprecated 되었습니다.. 정말 귀찮게 하는 구글선생님 이군요. 리스너만들기 val backEvent = object : OnBackPressedCallback(true){ override fun handleOnBackPressed() { //뒤로가기 동작처리 finish() } } 리스너등록 this.onBackPressedDispatcher.addCallback(this, backEvent) 끗..! 2023. 3. 14.
코틀린 HTML 태그 제거하기. fun removeTag(str: String?): String? { var str = str str = Normalizer.normalize(str, Normalizer.Form.NFKC) var mat: Matcher // script 처리 val script = Pattern.compile("]*>.*?", Pattern.DOTALL) mat = script.matcher(str) str = mat.replaceAll("") // style 처리 val style = Pattern.compile("", Pattern.DOTALL) mat = style.matcher(str) str = mat.replaceAll("") // tag 처리 val tag = Pattern.compile("])*>") m.. 2023. 1. 3.