2019년 10월 10일 목요일

Android NDK


Android Studio 에서 App 빌드후 생성된 so ndk-build.cmd 생성한 so 파일의 크기가 다르다. 왜일까?
또한 ndk-build 이용해야 so libs 복사된다.(내부 install 명령을 통해서)

Android Studio Ndk-build 설정
File - Settings - Tools - External Tools - add

Build 추가
Program : sdk 설치폴더\ndk-bundle\ndk-build.cmd
Working dir : 프로젝트\app\src\main (or jni)

Clean 추가
Program : sdk 설치폴더\ndk-bundle\ndk-build.cmd
Arguments : clean
Working dir : 프로젝트\app\src\main (or jni)

 

 

[Build error : Error fatal error opening dependency file … No such file or directory]

D:/xxx/yyy/zzz/D_/build/xxx/yyy 형태로 중복 출력되는 경우

프로젝트의 경로가 너무 길어 발생하는 문제

 

2019년 8월 29일 목요일

Android Studio build error

  • java.lang.UnsatisfiedLinkError

Jni library를 추가 하거나, 빌드된 Library를 추가 했을 경우 아래와 같은 에러 발생
1. gradle.properties 파일  -> 아래 한 줄을 추가
   android.useDeprecatedNdk=true
2. app/build.gradle 파일 -> 아래 소스 추가
   defaultConfig {
        ndk {
            abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
        }
    }

  • GCM java.io.IOException: SERVICE_NOT_AVAILABLE

시스템 환경설정 시간을 자동으로 설정

  • More than one file was found with OS independent path 'lib/armeabi-v7a/libxxx.so' 
해당 모듈의 build.gradle 에 추가.

 
packagingOptions {
    pickFirst 'lib/arm64-v8a/*'
    pickFirst 'lib/armeabi-v7a/*' 
}
 

2019년 7월 18일 목요일

Android SECRET_CODE

디버깅 로그 확인을 위해 SECRET_CODE 를 사용하였는데 언제부터인가 안되는 단말이 생기기 시작했다.
관련 내용을 정리해본다.

기본 dialer 앱을 통해 동작시켜야 한다.
*#*#code#*#* 이 동작하지 않을 경우는 adb 를 이용하는 방법도 있다.

adb shell am broadcast -a android.provider.Telephony.SECRET_CODE -d android_secret_code://codeNumber

but, Android Oreo(?) 이후부터는 exception 발생한다.
java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.provider.Telephony.SECRET_CODE

API29 에서 ACTION_SECRET_CODE 가 생긴다는데 추후 확인 필요하다.

현재까지의 결론은, S 폰은 위 방법들로는 안되는거 같고, 내가 가지고 있는 일부 폰에서는 dialer app 에서는 동작은 한다.

Android Jetpack viewpager2

  Android Jetpack ViewPager2 기본 개념 및 샘플 코드 오늘은 안드로이드 개발에 있어서 굉장히 유용한 컴포넌트 중 하나인 ViewPager2에 대해 이야기해볼까 합니다. ViewPager2는 사용자 인터페이스에서 여러 화면을 좌우...