티스토리 뷰
이클립스로 작성된 프로젝트를 안드로이드 스튜디오로 import하는것은 Android Studio가 알아서 해주기 때문에 매우 쉽습니다. 하지만 NDK 프로젝트라면 상황이 조금 다릅니다.
실제로 프로젝트를 import 하는 중 필요한 사항들과 제가 겪었던 문제점들을 정리합니다.
NDK 다운로드 및 설정방법
- 먼저 안드로이드에서 제공하는 NDK 패키지를 다운받아서 적당한 곳에 압축해제합니다.
(단, 경로에 공백(SPACE)이 있으면 안됩니다.) - 프로젝트에 NDK 경로를 설정해줍니다.
android studio에서 프로젝트를 우클릭하여Open Module Setting -> SDK Location -> Android NDK location
항목에서 ndk 경로를 선택해주면 됩니다.
혹은, 프로젝트의local.properties
파일에 다음과 같이ndk.dir
항목에 경로를 작성합니다.
ndk.dir=D\:\\sample\\path\\ndk
sdk.dir=D\:\\sample\\path\\sdk
undefined reference to `__android_log_print’오류
당연히 c 파일에는
android/log.h
를 include해야합니다. 만약 그래도 오류가 난다면 다음을 참고하시기 바랍니다.
- 앱의
build.gradle
파일에 다음과 같이 ndk에ldLibs "log"
를 추가합니다.
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.test.testproj"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0.0"
ndk {
moduleName "testmodule"
ldLibs "log"
}
}
...
}
Android.mk
파일에 다음과 같이LOCAL_LDLIBS
값을 추가합니다.
...
include $(CLEAR_VARS)
...
LOCAL_LDLIBS := -llog
...
include $(BUILD_SHARED_LIBRARY)
format not a string literal and no format arguments [-Werror=format-security] 오류
윈도우 탐색기에서
ndk경로/build/core/default-build-commands.mk
파일을 찾아 텍스트 편집기로 열어줍니다.-Werror=format-security
구문을 검색하여 지워줍니다. 제가 사용한 버전에서는 59 line에 있었습니다.
# This flag are used to provide compiler protection against format
# string vulnerabilities.
TARGET_FORMAT_STRING_CFLAGS := -Wformat -Werror=format-security
'study > Android' 카테고리의 다른 글
[Android] Dialog (0) | 2014.01.13 |
---|---|
[Android] 안드로이드 인터넷 상태 체크 및 확인 (1) | 2013.12.29 |
[Android] intent가 중복 실행될 때 (0) | 2013.12.28 |
[Android] Animation 정리 (0) | 2013.12.28 |
[Android] Layout 알아두면 좋은 속성들 (0) | 2013.12.27 |
댓글