일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- error
- 안스
- WebView
- coroutine
- 웹뷰
- Retrofit
- 유튜브
- 레트로핏
- Gradle
- viewpager
- 안드로이드스튜디오
- GIT
- Android
- 의존성주입
- RecyclerView
- 깃헙
- 안드로이드
- 코루틴
- 코틀린
- dart
- Kotlin
- 에러
- 안드로이드 스튜디오
- 스튜디오
- image
- build
- Github
- studio
- MVVM
- ADB
- Today
- Total
목록error (11)
코딩하는 일용직 노동자
프로젝트를 빌드해서 실행한 후 다시 한번 빌드 후 실행할때부터 java.lang.SecurityException: Writable dex file 오류가 발생했습니다.java.lang.SecurityException: Writable dex file '/data/data/com.amazon.styledictionaryexample/code_cache/.overlay/base.apk/classes2.dex' is not allowed. 이럴땐 당황하지 말고 아래처럼 Application onCreate()에 코드를 추가해주면 됩니다.import android.app.Applicationimport java.io.Fileclass App: Application() { override fun onCreat..
깃헙에서 clone 받은 오래된 프로젝트에 최신 라이브러리를 추가해서 빌드하려고 하니 아래와 같은 빌드오류가 발생했습니다. Invoke-customs are only supported starting with Android O (--min-api 26) clone 받은 프로젝트가 오래된 것이다보니 발생한 오류입니다. gradle 셋팅에 아래 내용을 추가해서 오류를 해결했습니다. android { ... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
안드로이드 스튜디오에서 새로운 프로젝트를 만든 후 gradle 셋팅을 수정하던 중에 Project레벨의 build.gradle 에 레파지토리 정보를 추가했습니다. allprojects { repositories { maven { url "https://jitpack.io" } } } 하지만 빌드를 하니 아래처럼 에러가 발생했습니다. Build was configured to prefer settings repositories over project repositories but repository 'maven' was added by build file 'build.gradle' 원인을 검색해보니 안드로이드 스튜디오 Arctic Fox버전 이후에 만든 프로젝트는 build.gradle 이 아니라 sett..
안드로이드 스튜디오를 최신 Arctic Fox 로 업데이트 하고 gradle 버전을 7로, JDK를 11로 업데이트 한 후 앱을 빌드하니 아래의 오류가 발생합니다. Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8 아직 빌드 설정상에 JDK 버전이 1.8로 되어 있는듯 합니다. 우선 [Project Structure] > [SDK Location] 메뉴에서 [JDK location was moved to Gradle Settings.] 를 누릅니다. 그리고 [Gradle JDK:] 에서 JDK 버전을 11로 선택해줍니다. 다시 빌드해보면 정상적으로 빌드가 되는것을 확인 할 수 있습니다.
안드로이드 스튜디오의 새로운 버전인 Arctic Fox 를 설치했습니다. 그러니 gradle 7.0 을 설치하라고 해서 설치하고 JDK 11 버전이 필요하다고 해서 겨우겨우 설치했습니다. 간신히 빌드를 하려는데 처음보는 에러가 발생했습니다. Manifest merger failed : android:exported needs to be explicitly specified for . Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://devel..
다른 개발자와의 협업중에 그분에게서 전달받은 소스파일을 덮어씌워서 작업하다 보니 기존에는 발생하지 않았던 컴파일 오류가 발생했다. The minCompileSdk (31) specified in a dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties) is greater than this module's compileSdkVersion (android-30). clean 을 해보고 빌드를 다시 해봐도 계속 문제가 발생했다. compileSdkVersion 을 31로 변경해서 빌드해봐도 계속 발생했는데 app/build.gradle 에 아래의 처리를 추가해서 해결했다. configurations.all { ..
ViewModel 안에 만들어둔 MutableLiveData 변수의 value 를 바꿔주기 위해 .setValue() 나 .sendEvent() 를 사용하니 앱이 바로 죽습니다. 에러로그를 보니 메인쓰레드가 아닌 다른 쓰레드에서 MutableLiveData 의 값을 셋팅하다보니 발생한 에러입니다. (CoroutineScope 는 Dispatchers.IO 로 만들어서 사용중이었습니다.) 구글링을 해보니 아주 간편한 해결법이 있습니다. postValue() 로 값을 셋팅해주면 됩니다.
앱을 테스트할때는 빌드가 잘 되는데 릴리즈용 apk 파일을 빌드할때는 못보던 에러가 발생하며 사이닝된 릴리즈용 파일을 만들지 못했다. Lint found fatal errors while assembling a release target. 검색해보니 처리할 수 있는 방법이 두가지 있다. #1. 리포트 파일을 읽어서 해결한다. app/build/reports/ 경로에 html 과 xml 파일이 생성된다. 이것을 참고해 에러의 원인을 해결한다. #2. module 의 build.gradle 파일에 아래의 옵션을 추가한다. android { lintOptions { checkReleaseBuilds false // Or, if you prefer, you can continue to check for erro..
애드몹 Test UnitID로 배너광고가 나오는 것은 확인했는데 정장 상용ID로 배너광고가 표시되지 않았다. 로그캣에 보니 아래와 같은 메세지가 보였다. The Google Mobile Ads SDK will not integrate with Firebase. Admob/Firebase integration requires the latest Firebase SDK jar, but Firebase SDK is either missing or out of date 검색해보니 Tool > SDK Manager > SDK Tool tab 에서 google play service 체크하고 설치하라고 했다. 설치했더니 이번엔 아래와 같은 메세지가 보였다. Ad failed to load : 3 은 광고가 없다는 ..
개발중인 하이브리드 앱의 웹뷰에 카카오톡으로 공유하기 기능이 있는데 카카오톡으로 이동도 하지 않고 net:ERR_UNKNOWN_URL_SCHEME 에러가 발생했습니다. 구글신에게 검색해보니 a href 에서 앞에 intent: 만 제거해서 붙이는 방법이 있었고 WebViewClient 의 shouldOverrideUrlLoading() 에서 처리해주는 방법이 있었습니다. 저는 shouldOverrideUrlLoading() 에서 아래의 소스를 추가해서 문제를 해결했습니다. @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { LogUtil.e("shouldOverrideUrlLoading :: " + url); try ..