Android Crash NDK Integration
IMQA Crash 를 Android NDK 프로젝트에 추가하면, 앱에서 발생하는 충돌을 자동으로 캡처하여 보여드립니다.
IMQA Crash를 처음 사용하시나요? 지금 계정을 만들어보세요.
설치 (Installation)
SDK 설치
- Android Studio 에서 app.gradle 파일을 열어줍니다.
- repositories에 jcenter() 를 추가해주세요.
- dependencies에 imqa-crash-client 를 추가해주세요.
// Add dependencies
repositories {
jcenter()
}
// compile 또는 implementation
dependencies {
compile 'io.imqa:imqa-crash-client:2.2.5'
compile 'io.imqa:imqa-core:2.2.3'
}
- 파일을 업데이트 한 후 Gradle 파일을 동기화 해주시길 바랍니다.
NDK 설치
SDK 설치 후 NDK 설치를 위한 파일을 다운로드 받습니다. 최신 NDK 파일 다운로드
다운로드 받은 파일을 압축 해제한 후 app/src/main/jni 에 복사해주세요.
최종적으로 app/src/main/jni/header, app/src/main/jni/armeabi, app/src/main/jni/armeabi-v7a 이 있는지 확인 해주세요.
기본 설정 (Basic Configuration)
1. 인터넷 권한 설정하기
프로젝트의 AndroidManifest.xml 에 발생한 충돌 정보를 업로드하기 위해 인터넷 권한을 추가합니다.
<uses-permission android:name="android.permission.INTERNET"/>
2. IMQAController 초기화하기
프로젝트의 Application 클래스에 IMQAController를 초기화하는 코드를 넣어줍니다.
PROJECT_KEY 는 IMQA 사이트에서 프로젝트를 생성한 후 발급 받으실 수 있습니다.
@Override
public void onCreate() {
super.onCreate();
io.imqa.crash.IMQACrashAgent.InitializeAndStartSession(
this,
BuildConfig.FLAVOR,
"PROJECT_KEY");
}
IMQA Crash 를 추가로 구성을 원하는 경우 Android Configuration Options에서 확인하실 수 있습니다.
NDK 설정 (NDK Configuration)
다음과 같이 Android.mk 파일을 수정합니다.
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := imqa
LOCAL_SRC_FILES = $(TARGET_ARCH_ABI)/liburqanative.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := TestJniModule
LOCAL_SRC_FILES := TestJniMethod.cpp
LOCAL_LDLIBS := -llog
LOCAL_STATIC_LIBRARIES := imqa
LOCAL_C_INCLUDES := $(LOCAL_PATH)/header/common/android/include \
$(LOCAL_PATH)/header
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES)
include $(BUILD_SHARED_LIBRARY)
그리고, 다음과 같이 Application.mk 파일을 수정합니다.
APP_STL := stlport_static
APP_ABI := armeabi armeabi-v7a
설정 이후, Native 파일에서 최초 실행되는 Jni 모듈에 Initialize 를 해주면 실행됩니다.
// (TestJniMethod.cpp)
#include <com_test_pacakge_MyActivity.h>
#include "urqa.h"
JNIEXPORT jstring JNICALL
Java_com_test_pacakge_MyActivity_someMethod(JNIEnv *env, jobject obj) {
UrqaNative::URQAIntialize(env);
…
}
도움이 필요하신가요?
IMQA 서비스 사용에 대해 궁금하시거나 상세한 문의가 필요하시다면 support@imqa.io 로 연락해주세요.