안드로이드 인앱 업데이트 기능을 작성하다 보면 가끔 발생하는 메세지

해결책 : 플레이스토어에 이미 앱이 출시되어있는데 현재 계정으로 받은 내역이 없어서 발생하는 오류. 현재 로그인되어있는 계정으로 해당 앱을 한번 설치해준후 다시 진행해준다.

Timeout 오류가 발생하는 경우가 종종 보이는데 이런경우 Crashlytics의 오류발생 코드를 인트로 액티비티나 메인액티비

티에서 바로 발생하게 해서 발생하는 오류오 확인된다.

버튼이나 UI에 할당해 오류를 발생시키면 해당 오류는 발생하지 않는다.

AndroidX로 마이그레이션 작업을 하거나 여러 라이브러리를 사용하다 보면 빌드시 duplicate오류가 발생하며 동일한 라이브러리가 참조중이라는 오류와 함께 빌드에 실패하는 경우가 종종있다.

이런 경우 오른쪽 에 위치한 Gradle메뉴로 가서 해당 모듈이나 어플리케이션의 항목으로 이동해 help-dependencies를 실행해보자.

출력창에 참조한 라이브러리들이 포함한 jar파일까지 모두 표시되기에 여기서 exclue시킬 라이브러리를 찾을수 있다.

그 라이브러리에 exclude선언으로 제외하도록 해주면 오류를 해결할수 있다.

apkprovisionexception no outputs for the main artifact of variant : debug(해당 variant명)

안드로이드 스튜디오 3.6이상에서 발생하는 오류로 이에 대한 해결법을 stackover에서는 Run/Debug Configuration에서 Deploy옵션을 Nothing으로 바꾸는것을 추천한다. 그러나 이렇게 변경하는 경우 추가로 오류가 발생하는 경우가 생기는데 디버깅시 APK가 인스톨되지 않는것이다.

개발중인 앱을 삭제후 디버깅을 시켜주게 되면 APK를 설치하지 못하는 오류가 발생하게 되는데 이때에는 main launcher를 못찾는 현상이 발생한다. 이에 대한 해결법은 gradle버젼을 올려주는건데 안드로이드 스튜디오 버젼이 3.6인데 gradle이 너무 낮아 생기는 오류라고 한다. 이에 대한 이슈는 https://androidstudio.googleblog.com/2020/04/android-studio-40-beta-4-available.html

 

Android Studio 4.0 Beta 4 available

Android Studio 4.0 Beta 4 is now available in the Beta channel. If you have Android Studio set up to receive updates on the  Beta channel...

androidstudio.googleblog.com

해당 페이지의 Run카테고리에 보고되어 있고 안드로이드 4.0에서 수정된것으로 보인다.

안드로이드 4.0이 나올때까지는 스튜디오를 3.5에서 사용하거나 gradle버젼을 올려 상요해주면 된다.

The Crashlytics build ID is missing. This occurs when Crashlytics tooling is absent from your app's build configuration. Please review Crashlytics onboarding instructions and ensure you have a valid Crashlytics account.

파이어베이스 문서에 나온대로 따라했지만 실행시 저런 오류메세지가 나온다면 프로젝트와 연결이 실패한것이다.

프로젝트와 연결을 다시해보거나 안드로이드 스튜디오 setting-plugins로 이동해 하단 Browse repositories로 이동해 

fabric for android studio 플러그인을 설치해 다시 진행해보면 된다.

이때는 사이트 가입과 플러그인 로그인이 필요해 귀찮을수는 있다. 하지만 이후로 정상적으로 넘어오는 로그를 확인한

다면 이런 사소한 귀찮음은 사라질것이다.

준비물:

EU롬, 커스텀롬, 리파티션파일, 갭스파일


Eu롬은

https://xiaomi.eu/community/forums/miui-weekly-rom-releases.103/


6.11.3을 기준으로 설명하자면 클릭해서 DOWNLOAD WEEKLY 에 해당하는 링크로 들어가 mipad라는


키워드가 들어간 롬을 받으면 된다.


커스텀롬은

http://en.miui.com/type-44-174.html

이곳에서 스모크롬이나 bdita롬을 받는걸 추천한다.


번역기를 돌리면 알아볼수 있을 정도의 설명이 있으니 이걸 참고해 준비하면 된다.


cwm리커버리 파일도 커롬창에서 받을수 있지만 추가로


이 두사이트를 참고하여 설치하면 된다.


구글에서 제공하는 예제는 fragmentactivity를 사용하는 예제로 구성되어 있습니다.

이걸 수정해서 사용하는 방법을 잘 모르시는 분들이 많은것 같아서 정리를 해봅니다.


getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
getChildFragmentManager().findFragmentById(R.id.map)).getMap();

이렇게 수정하여 사용하면 에러없이 사용이 가능합니다

삼성에서 S6쓰시는 거래처에서 클레임이 걸림

기존에 잘 되던 앱에서 폰을 바꾸고 난뒤로 버그가 생긴다고

확인해보니 기존 edittext에서 requestfocus로 hint를 지워주던 곳에서 삼성키보드를 사용하는 사람은 한영키를 누를시 뷰를 다시 호출함....

ㄷㄷㄷ 이래버리니 다시 포커스가 선택한 칸으로는 가지만 키보드가 다시 불려져서 한글만 입력이 가능해져버리는 버그가 발생....

노트4와 노트3로 체크해봐도 롤리팝 버젼의 기기에서만 발생하는 버그인듯 보이는데....

당장 해결 방법이 없어서 삼성키보드 말고 구글 키보드 깔아서 쓰세요 라고 했는데 답답함...

수정할만한 방법이 딱히 없는지라 머리만 열심히 굴리고 있네요.

이 버그 해결방법 아시는분은 리플좀 부탁드립니다.....

javah 로 h파일 생성중 could not find class file 에러가 발생할때는

cmd창으로 들어가 해당 프로젝트의 bin/classes폴더로 이동한다.

거기서 

javah -classpath c:\android-sdk\platform\android-18\android.jar; com.test.example

위처럼 안드로이드 sdk안에 android.jar파일의 위치를 classpath에 잡아주고 사용하려는 프로젝트의 패키지를 잡아주면 해결된다.

혹시나 시그윈에서 사용중이라면 src폴더에서 실행한게 아니라 더 아랫쪽으로 이동했는지를 확인해보자.

맥에서 이클립스로 안드로이드 앱을 작성 테스트 하던중 발생함.

메세지 : Can't bind to local 8600 for debugger

해결 방안 : 검색해보니 포트가 사용중이라 발생하는 에러로 판단됨 에러 유형은 8600포트와 8618포트가 사용중임을 나타내고 있음.

1. 이클립스를 종료한다.

2. usb포트를 제거한다.

3. 작업관리자나 맥의 경우 활성상태 보기로 adb프로세스를 종료시킨다.

4. 다시 이클립스를 재기동한다.

위에 방법이 인터넷 서치로 나온 방법이나 다시 실행시켜도 똑같은 에러가 발생했다.

해결 방안2 :

현재 이클립스에 aptana가 설치되어 있는데 이 경우에는 이클립스 환결설정-android-ddms-base local debugger port 란에 8600을 8601로 수정해준다.

이후 이상없이 진행되었다.

+ Recent posts