소프트웨어/안드로이드 (17) 썸네일형 리스트형 NDK java.lang.UnsatisfiedLinkError minSdkVersion 22 문제 Native Library를 포함한 Third party 라이브러리를 사용한 프로젝트를 진행하고 있었고 알파 버전으로 플레이스토어에 올리는 작업 단계였습니다. 제가 사용하던 핸드폰은 갤럭시 S10e인데 얼마 전 Android-12(SDK 31)로 업데이트를 해두었죠. 불행중 다행으로 이 업데이트로 해당 이슈를 인지할 수 있었습니다. 업데이트 후 며칠정도 시간이 지난 후 알파 버전이 제대로 돌아가는지 문득 떠올라 구동을 해봤고 아주 시원하게 앱이 크래시가 났습니다. 우선 특정 버전에서 문제가 되는 것인지 하여 갤럭시 노트5, Android-9(SDK 29)에서 동일한 버전으로 테스트하였고 여기서는 정상적으로 동작을 하였습니다. Android 12가 문제일 것이라 생각하였으나 해당 라이브러리의 샘플 프로젝트.. [Android Studio] 안드로이드 스튜디오 여러 버전을 한 PC에 설치 TLDR; 신규 프로젝트를 위한 Android Studio Update가 필요! 어?? 안 되잖아? 안돼! 🤣 각 버전 별 IDE를 두개로 설치해서 쓰자! ??? PROFIT!!! Windows 10 기준으로 작성한 내용입니다. 참고해주세요. Butterknife Deprecated 소식이 좀 늦은 감이 있지만 Buffter Knife가 공식적으로 deprecated되었습니다. View binding을 사용하라고 합니다. 기존 프로젝트에서도 Butter Knife가 잘 동작은 하지만 새로운 프로젝트에 Butter Knife를 차마 사용하기가 좀 그렇습니다. 최신 Android App 개발 패러다임에 맞는 다른 요소를 사용하기에도 필수적이기도 하구요. 단, 이걸 써먹을라면 한 가지 조건이 있습니다. 어.... [Android] AVD 이미지 위치 변경 Windows에서 안드로이드 SDK 설치를 별 다른 설정 없이 진행하면 에뮬레이터의 설치 위치는 다음과 같은 위치에 설치가 됩니다. C:\Users\유저이름\.android\avd AVD를 한개만 사용하는게 아니기 때문에 디스크 용량을 꽤나 많이 차지하게 됩니다. 이럴 경우 보조 드라이브에 AVD 이미지 파일을 이동하고 경로 설정만 지정해주면 용량 확보에 도움이 될 것입니다. 1. AVD 이미지를 생성합니다. 1-1. Tools > AVD Manager > Create Virtual Device... 1-2. 이미지 리스트의 우측 화살표 클릭 > View Details에서 생성된 이미지의 경로를 확인합니다. path 에서처럼 현재는 이미지가 C:\에 위치해 있습니다. 실제로 C:\Users\유저이름\.a.. [Android] AVD 실행 안되는 경우 지금까지 에뮬레이터를 잘 쓰다가 API 29 에뮬레이터를 생성해서 실행시키려니 아래와 같은 문제가 발생하였습니다. error while loading state for instance 0x0 of device 'goldfish_pipe' 오후 4:11Emulator: C:\Users\oysu\AppData\Local\Android\Sdk\emulator\qemu\windows-x86_64\qemu-system-x86_64.exe: error while loading state for instance 0x0 of device 'goldfish_pipe' 오후 4:11Emulator: deleteSnapshot: for default_boot 오후 4:11Emulator: Process finished wi.. [Android/Kitkat] 로케일 변경 시 CheckBox 텍스트가 업데이트 되지 않는 현상 해결 1) onResume에서 텍스트를 업데이트 @Override protected void onResume() { checkBox.setText(R.string.text); } 2) CheckBox 상속한 Custom View에서 onRestoreInstanceState 수정 public class MyCheckbox extends CheckBox { public IBCheckbox(Context context) { super(context); } public IBCheckbox(Context context, AttributeSet attrs) { super(context, attrs); } public IBCheckbox(Context context, AttributeSet attrs, int defSty.. [Android] Windows 개발 소스를 Linux에서 빌드할 때 주의사항 Windows 10에서 안드로이드 프로젝트를 진행하고 있었습니다. 그러나 어느날 문득 apk/so 배포가 너무 귀찮아서(몇분 안걸리긴함..) Ubuntu에 Docker올리고 Jenkins를 설치하여 빌드 자동화 구성을 하였으나 빌드 Fail이 자꾸 발생하였습니다. 감떨어졌나? Git checkout도 성공적이었고 Gradle wrapper도 잘 동작하였고 ANDROID_HOME도 잘 찾았으며 Android SDK까지 기존 윈도우 환경과 동일하게 세팅했는데??? 약간의 삽질 끝에 찾아낸 원인은 다음과 같았습니다. "대소문자" 제 경우에는 총 두 군데에서 문제가 발생하였는데 다음과 같았습니다. IAIDLHelper.aidl IAIDLHelper.aidl 파일 내에는 interface IAidlHelper로 .. [Android] MVVM Anti Pattern 참고용으로 저장합니다. https://dhha22.github.io/androidgi/2020/05/12/mvvm_anti_pattern.html MVVM Anti Pattern MVVM Architecture을 적용할 때 피해야할 패턴에 대하여 다뤄보도록 하겠습니다. dhha22.github.io [안드로이드] 코드에서 Ping 확인 Java /** * @return 0: success, 1: fail, 2: error */ public static int ping(@NonNull String host, int timeout) throws InterruptedException, IOException { int res; Runtime rt = Runtime.getRuntime(); Process process = rt.exec(String.format(Locale.US, "ping -c 1 -W %d %s", timeout, host)); // 0: 성공, 1: 실패, 2: 에러 res = process.waitFor(); // ~~ // shell 명령 출력 값 확인용입니다. 없어도 되요 BufferedReader br = new B.. 이전 1 2 3 다음