본문 바로가기

운동하는 개발자/Android

(30)
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/
안드로이드 스튜디오 2020.3.1 Arctic Fox AAR 파일 모듈 연결하기 작년 초 android studio에서 .aar파일을 연결하는 글을 썼었는데 고새 바뀌었다😥 전문 안드로이드 개발자도 아닌데 회사에서 담당한 안드로이드 프로젝트가 있기에 이런 소소한 변화도 은근 스트레스다 android studio 버전 네이밍 스타일도 변경되었네요.. 해당 버전 기준으로 작성되었습니다 (작성일 22.01.12) 1. 보기 타입을 Project로 변경 2. 최근에 만든 프로젝트라면 project/app/libs 이라는 경로가 있다 과거에 만든 프로젝트라면 app하단에서 libs 디랙토리가 없기에 만들어줘야한다 app에서 우클릭 new-> Directory 클릭 후 이름을 libs 라고 지어준다 3. 원하는 aar파일을 libs으로 복사 (드래그 앤 드롭 , copy+ c v 가능) 4. ..