일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 에러
- Gradle
- Android
- 코루틴
- studio
- 코틀린
- ADB
- dart
- 안드로이드스튜디오
- Github
- 깃헙
- 스튜디오
- MVVM
- 유튜브
- 안스
- viewpager
- Retrofit
- 안드로이드
- GIT
- RecyclerView
- Kotlin
- image
- coroutine
- 웹뷰
- 의존성주입
- error
- 안드로이드 스튜디오
- WebView
- build
- 레트로핏
- Today
- Total
목록전체 글 (164)
코딩하는 일용직 노동자
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Sybd6/btqDPYiRb3a/L2QdtfL66l9mlO4xE8itL1/img.jpg)
# Android 10 에서 카메라 셔터음 제거하기. Android 10 부터는 기존 카메라 셔터음 제거 어플이 작동되지 않는 경우가 있다고 합니다. adb 명령어로 카메라 셔터음을 제거할 수 있습니다. 컴퓨터에 핸드폰을 연결시키고 터미널에서 windows .\adb shell settings put system csc_pref_camera_forced_shuttersound_key 0 mac adb shell settings put system csc_pref_camera_forced_shuttersound_key 0 이렇게 입력하고 아무런 메세지가 나오지 않으면 성공한 것입니다. 핸드폰이 무음이나 진동모드일때에는 카메라 셔터음이 나오지 않게 됩니다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Nwnkf/btqDPMwbqn5/TYlfxo4Sl2tWaQW7JZlZ91/img.jpg)
텍스트뷰를 html span 처럼 꾸미고 클릭 이벤트 까지 적용할 수 있습니다. # 소스 val span_click = object : ClickableSpan() { override fun onClick(textView: View) { startActivity(Intent(this@PurchaseActivity, MyPageTermsActivity::class.java).apply { putExtra("goDetail", 2) }) } } val ss = SpannableString("구매신청 시, XXX 서비스 계약약관과\n 결제에 동의하는 것으로 간주됩니다.") ss.setSpan(span_click, 8, 20, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) ss.setSpan(Un..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/1cuPG/btqDL4L6czZ/TvzkqetejfFZYvpOmzlwbK/img.jpg)
은행앱은 최근사용앱 화면을 보면 하얀색으로 표시됩니다. (멀티태스킹 버튼을 누르면 나오는 화면) onCreate 메소드에 아래 내용을 추가하면 됩니다. window.addFlags(WindowManager.LayoutParams.FLAG_SECURE) 만약 최근사용앱에 앱을 등록조차 안되게 하고 싶다면 manifest 파일에 activity 안에 아래 내용을 추가시켜주면 됩니다. 모든 액티비티에 다 추가해줘야 할듯합니다. android:excludeFromRecents="true" 이렇게 하면 최근앱리스트에 등록조차 되지 않습니다. 위 사진은 멀티태스킹 버튼을 누르면 보이는 최근사용한앱 화면입니다. 멀티태스킹 버튼을 누르면 보이는 앱화면이 하얀색으로 표시됩니다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/NPe3N/btqDPKSER1t/Op3hGzVkpNMl1wJrc8oKPk/img.png)
# CLEARTEXT communication to XXXX not permitted by network security policy 에러처리. 안드로이드 9.0 (Pie) 버전에서는 무조건 https 를 쓰도록 강제하기 때문에 발하는 에러이다. xml/network_security_config.xml 파일을 만들고 아래의 내용을 넣어준다. 매니페스트 파일의 어플리케이션 단에 network_security_config.xml 파일을 지정해준다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bHv8so/btqDPLxe6E0/Z9Q7M0MRmSFb8TvSol15o1/img.jpg)
IntentReceiver components are not allowed to register to receive intents 안드로이드 프로그래밍 시, 이와 같은 오류를 만날 가능성이 있다. 이유인즉, 리시버 안에 리시버를 등록 할 수 없다는 것이다. 해결책이 있다. 넘겨주는 context의 값을 context.getApplicationContext() 로 설정 하라. 오류가 없어질 것이다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bIKXGe/btqDOj9gzCx/3TUtahB7tkifGyi2z6FWf1/img.png)
# BootstrapMethodError 해결. 잘 되던 프로젝트의 gradle 에서 라이브러리 버전을 싹 다 올린후 실행해보니 아래의 에러가 발생했다. java.lang.BootstrapMethodError: Exception from call site #4 bootstrap method 구글 검색을 해보니 처리 방법이 있었다. compileOptions 를 추가해주는 것인데... 아무래도 java 1.8 로 컴파일 하도록 해주는 처리인듯 하다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/A3ryu/btqDO2eWgXI/FvkiHK2g3hDAwOB6CpOc41/img.jpg)
# 파일공유시 FileProvider 이용하기. FileUriExposedException 해결. Android 7.0(Nougat / API 24)에서 Intent로 URI 파일 경로 전송시 "file://" 이런식으로 구현되어있으면 FileUriExposedException 오류가 발생하게 되고 앱이 종료됩니다. 앱간 파일을 공유하려면 "file://" 대신 "content://"로 URI를 보내야 합니다. URI로 데이터를 보내기 위해선 FileProvider 를 이용해야 합니다. # 소스파일 var file = File(Environment.getExternalStorageDirectory().path + "/PickNPick/" + it.name) var uri = FileProvider.get..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bfxDdi/btqDMGYdmRe/D4hgQcdvZKWkXYXPrVBFiK/img.png)
오랜만에 작업중이던 프로젝트의 라이브러리들을 싹 업데이트 해주니 갑자기 빌드가 안되고 아래와 같은 에러메세지가 보인다. Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6. Please specify proper '-jvm-target' option 빌드해보니 다음과 같은 방법으로 해결 할 수 있다. 설정 > Kotlin compiler > Target JVM version 을 1.8 로 변경해준다. 안드로이드 스튜디오를 재시작 해도 여전히 에러가 발생한다면 Clean 을 해주고 gradle 에 kotlinOptions { jvmTarget = "1.8" } 을 추가해준다.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/E827W/btqDPKZk9Id/D9DHHsv1DKwXB2L91Xky31/img.png)
안드로이드 스튜디오를 3.6 버전으로 업데이트 한후로 AndroidManifest 을 열면 android:screenOrientation="portrait" 에 빨간줄이 칠해지는 현상이 보였다. 앱이 빌드가 되지 않는것은 아니지만 상당히 거슬린다. -_-+ 앱이 빌드가 되는것을 보면 오류는 아니고 warning 인듯하다. 이것을 해결해보자. 방법1. 안드로이드 스튜디오 설정에서 해당 내용을 warning 으로 처리되지 않도록 한다. 설정 > Editor > Inspections > Android > Lint > Correctness > Chrome OS 에서 Activity is locked to an orientation 항목 2개를 모두 해제하자. 방법2. AndroidManifest 파일의 태그..