운동하는 개발자/Android (26) 썸네일형 리스트형 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. .. 무료 삼성 안드로이드 모바일 기기 앱 테스트(Remote Test Lab) 안드로이드 앱 개발자라면 다양한 기기에서 앱 테스트가 필요한데 삼성에서 원격으로 모바일 기기를 컨트롤하여 테스트할 수 있는 서비스가 있어 소개합니다 https://developer.samsung.com/remote-test-lab Remote Test Lab | Samsung Developers The world runs on you. developer.samsung.com 1. 삼성계정 로그인(없으면 가입) 2. 메인화면에서 Get Started 3. 원하는 기기 선택 4. 대여시간 선택하여 start 5. 테스트 시작 - Device Information : 디바이스 정보 - Languages : 디바이스 언어 설정 - Applications : 설치된 앱명과 패키지명, 좌측 상단 휴지통 좌측 화살표.. Bluestack5로 android studio 디버깅하기 개요 android studio에서 제공하는 ADV(Android Virtual Device)는 너무 느리고 기본 앱들도 부족하여 테스트에 불편함이 자주 있었다 그러다 평소 모바일 게임할 때 사용하는 Bluestack으로 디버깅이 가능하지 않을까 하고 알아보았다 방법 Android Studio가 종료된 상태에서 Bluestack을 실행한다 우측 하단 설정 버튼을 누른다 좌측에서 "기기" 선택 후 원하는 기기 선택 혹여나 루트권한이 필요하다면 루트 권한 사용 체크 좌측에서 "고급 기능 설정" 선택 후 Android 디버그 브릿지 체크 저장 후 Bluestack 재시작(포트번호 확인) cd %LocalAppData%\Android\sdk\platform-tools 윈도우에서 cmd창 실행 adb가 설치된 .. android studio AVD Waiting For Debugger / Run 무한대기 증상 안드로이드 스튜디오에서 AVD(Android Virtual Devices)를 사용하여 Run App 명령을 하였는데 Debug App을 한것처럼 멈춰있는 경우 (아래사진) 상세 내용 원래는 디버깅모드때 잠시 떴다가 사라지는 창인데 Run App을 하였는데도 무한대기하며 앱이 실행이 안됬다 Debug App을 하면 정상적으로 디버그모드로 정상적으로 동작이 된다 빠르게 Run만 해보고 싶을때 여간 불편한게 아니여서 확인해 본 결과 AVD를 디버깅중에 코드를 수정하여 다시 빌드하여 Run App을 동작시키면 간헐적으로 생기는 버그로 보였다 해결책 Tools -> AVD Manager를 실행 시킨 후 오류가 발생한 Virtual Device의 가장우측에 아래방향 화살표를 누른 뒤 'Cold Boot Now.. android createnewfile Operation not permitted 해결 이미지파일을 내부저장소에 저장하는 기능이 있는데 어느순간부터 File에서 createnewfile 함수 호출시 Operation not permitted 라는 에러가 발생하였다 File file = new File(fullPath, fileName); file.createNewFile(); //exception 발생부분 원래 정상 작동하던 코드인데 갑자기 안되서 당황하였고 권한 관련해서 이것도 넣어보고 빼보고 아무리 하다 해결이 안됬다가 디버깅중 이상하다 싶어 결국 해결된게 파일의 확장자가 없으면 create를 실패한다 간단하게 filename에서 확장자가 없다면 확장자를 넣어주는 로직을 추가 후 정상작동하는것을 확인하였다 구글링 대충해봤는데 확장자가 꼭 필요하다 라는말 정도만 있고 그 이유는 못찾았다 .. 이전 1 2 3 4 다음