본문 바로가기

운동하는 개발자/Android

(31)
Google Console 개발자 계정 인증 확인 (개인 계정) 올해 초에 구글에서 개발자 계정 인증 관련 어쩌고 하면서 기간 내에 반드시 인증을 해야 하며 안 할 경우 계정이 삭제 될 예정이라는 협박? 이 날아왔다.희한하게도 바로 인증이 불가능하고 인증 가능 기간을 선택해야 하는데 늦으면 까먹을 거 같아서 당시 가장 빨랐던 9월 말을 선택했다.9월 말이 되어 또 협박 메일이 날아왔고 구글 콘솔에 접속해 보니 홈 화면에서 이런 것이 떠 있었다.사업자가 아닌 개인인기에 바로 집에서 시도해 보는데 본인 이름, 주소가 나오는 서류를 제출하라고 한다.황당하게도 어떤 서류도 준비하기 어려웠다.전세로 살고 있어서 수도, 전기는 건물주 이름으로 되어있고 가스는 모바일 청구서만 받기에 간이 청구서 형식으로만 구할 수 있었다.은행 명세서 카드 명세서도 없고.. 그나마 가스가 내 이름..
Duplicate class a.a found in modules jetified-a-release-runtime (:a-release:) and jetified-b-release-runtime (:b-release:) 우선 이 프로젝트의 구조는 다음과 같다. lib플젝에서 lib.aar을 생성하고 libEx 플젝에서 lib.aar을 dependencies 하여 libEx.aar를 생성한다. 그리고 app 플젝에서 lib.aar, libEx.aar을 모두 dependencies 한다. 기존 코드에서 gradle, java, Target SDK 버전만 바꿨을 뿐인데 제목과 같은 에러가 발생했다. Duplicate class a.a found in modules jetified-a-release-runtime (:a-release:) and jetified-b-release-runtime (:b-release:) Duplicate class a.b found in modules jetified-a-release-runtim..
libVLC error: cannot find symbol (R.id.player_surface_frame) libVLC를 사용 중이었는데 Gradle과 SDK, JDK버전을 올리고 난 뒤 제목과 같은 에러가 발생하였고 몇 개의 libVLC내에 리소스 아이디를 찾지 못하였다. videoSurfaceFrame = findViewById(R.id.player_surface_frame); ViewStub stub = findViewById(R.id.surface_stub); stub = findViewById(R.id.subtitles_surface_stub); import도 잘 되어있고 코드상으론 변한 것이 없는데.. 혹시나 싶어 import org.videolan.*; 를 넣어줘도 소용없었다. JDK에서 먼가 바뀌면서 적용된 듯..? 해결책으론 org.videolan. 이런 식으로 명시적으로 이름을 적용시켜 주었..
AGPBI: {"kind":"error","text":"Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in F:\\work\\lib\\release\\missing_rules.txt.","sources":[{}]} (libVLC) SDK, JDK, Gradle버전 업그레이드 이후 위와 같은 에러가 발생했다 해당경로에 txt파일을 열어보니 내용은 아래와 같았다 # Please add these rules to your existing keep rules in order to suppress warnings. # This is generated automatically by the Android Gradle plugin. - dontwarn org.videolan.R$id 시키는 데로 proguard-rules.pro에 한 줄 추가해 주고 에러는 사라졌다
Direct local .aar file dependencies are not supported when building an AAR (aar 내에 로컬 aar 포함) 구글 플레이의 지시에 따라 Target SDK버전을 올렸다. => gradle 버전을 올리라고 한다... 올렸다 => Java 버전을 올리라고 한다.. 올렸다 => android studio IDE버전을 올리라고 한다 아놔... 다 올려 줬더니 컴파일 에러가 엄청 뜬다 ^^ (전문 모바일 개발자도 아니고 못해먹겠어요~~ 아아아 왤케 바뀌어) Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken because the classes and Android resources from any local .aar file dependencies would not be pac..
android adb를 이용한 native bug tracking (Android Debug Bridge 사용법) native 코드를 사용하는 android앱 개발 중 앱 crash 가 발생 하며 해당 앱이 강제 종료되었고 LogCat에는 다음과 같이 남아 있었다 ??? 마지막찍혀있는 로그는 특정 클래스의 소멸자 로그로 더 이상 추적이 불가능한 상황이였다 C++로 되어진 Native 코드를 라이브러리로 참조하기에 디버깅도 불가능했다 방법을 찾아보던중 adb를 이용해서 BugReport를 받아 볼 수 있다는걸 알게 되었다 우선 adb는 보통 SDK설치 경로쪽에 존재하는데 나처럼 android studio에서 함께 설치되었다면 [해당 디스크]\Users\[사용자명]\AppData\Local\Android\Sdk\platforms-tools 이 경로에 adb.exe파일이 있을것이다 커맨드 명령어를 사용해야 하는데 해당경로..
fatal signal SIGTRAP (NDK debugging error) 안드로이드 NDK연동 테스트 중 에러가 발생하며 앱이 강제 종료되었다 Fatal stgnal 5 (SIGTRAP), code 1 (TRAP_BRKPT), fault addr 0x7 ~~~블라블라 뭔소린지 하나도 모르겠다 디버그 모드로 돌려보면 더 많은 정보가 나오려나 하고 디버그로 돌려봤다 이제 익숙한 함수명이 나온다 가상 상위의 콜스텍을 보면 GetExecutableName()이란 함수쪽에 문제가 있단걸 알 수 있다 확인해보니 C++ 네이티브 코드쪽에 ifdef으로 OS별 로직 분기를 해놨는데 안드로이드에서 return을 타는 로직이 없었기에 발생한 것이였다 간단하게 #else return 추가 후 해결 완료.. 간단한건데 참 JDK를 사용할 땐 에러코드 메세지가 너무너무 불친절하다 그래서 원인 찾는데..
Android NDK를 이용하여 zlib 라이브러리 사용하기 나의 경우에는 크로스컴파일 환경에서 zlib 라이브러리를 통해 압축을 해제하는 기능을 추가하였다 https://zlib.net/