GithubHelp home page GithubHelp logo

kerwinzxc / google-breakpad-1 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pixonic/google-breakpad

0.0 1.0 0.0 4.82 MB

Библиотека для отправки на сервер информации (callstack, os ver, device type, ...) при нативных крэшах Android приложений

Java 0.26% CMake 0.03% Makefile 13.16% Shell 5.74% C++ 66.80% C 3.43% M4 0.29% Objective-C 4.53% Objective-C++ 3.47% Python 1.74% Assembly 0.14% Protocol Buffer 0.15% Go 0.24% Batchfile 0.02%

google-breakpad-1's Introduction

google-breakpad

Библиотека для отправки на сервер информации (callstack, os ver, device type, ...) при нативных крэшах Android приложений

Подключение

  • Импорт библиотеки в Eclipse

To import the SDK library project and the samples, with the new SDK, go to Eclipse's 'File' > 'Import' menu, and select 'General' / 'Existing Projects into Workspace': Для импорта проекта библиотеки перейдите откройте меню 'File' > 'Import и выбирите 'General' / 'Existing Projects into Workspace': Выбирите директорию BreakpadIntergation. У вас должен появиться проект BreakpabIntergation.

  • Подключение NDK модуля

В Application.mk добавте модуль breakpad_client

APP_MODULES += breakpad_client

В Android.mk подключите .mk файл NDK модуля, который находится в /google-breakpad/android/google_breakpad/Android.mk

К примеру:

include $(LOCAL_PATH)/../../third-party/breakpad/google-breakpad/android/google_breakpad/Android.mk

В LOCAL_C_INCLUDES добавте пути к /google-breakpad, /google-breakpad/src и /google-breakpad/src/common/android/include.

К примеру:

LOCAL_C_INCLUDES +=	$(LOCAL_PATH)/../third-party/breakpad/google-breakpad \
					$(LOCAL_PATH)/../third-party/breakpad/google-breakpad/src \
					$(LOCAL_PATH)/../third-party/breakpad/google-breakpad/src/common/android/include

В LOCAL_STATIC_LIBRARIES добавле библиотеку breakpad_client

LOCAL_STATIC_LIBRARIES += breakpad_client
  • Сборка проекта с использование goolegle breakpad модул.

В нативном коде, в методе JNI_OnLoad нужно вызвать метод crashHandlerSetJavaVM(JavaVM *javaVM); и передать в него указатель на виртуальную машину Java:

#include "android/google_breakpad/integration.h"

//...

jint JNI_OnLoad(JavaVM *vm, void *reserved)
{
	cocos2d::JniHelper::setJavaVM(vm);		
	// Try to catch crashes...
	crashHandlerSetJavaVM(vm);

	return JNI_VERSION_1_4;
}

Для инициализации модуля CrashHandler в Java коде, в методе onCreate для Activity следует вызывать CrashHandler.init(Activity):

import com.pixonic.breakpadintergation.CrashHandler;

//...
@Override
public void onCreate(Bundle savedInstanceState)
{
	// initialize crash handlers
	CrashHandler.init(this);
	
	super.onCreate(savedInstanceState);
	
	//...
}

Опционально для библиотеки может быть задано имя приложения которое используется для отправки информации о креше на сервер. Для этого нужно вызвать метод CrashHandler.setApplicationName(String appName). Если имя не задано, по умолчанию будет использоваться package name для Activity.

CrashHandler.setApplicationName("My Cool Game").

google-breakpad-1's People

Contributors

ntrf avatar dzhuravlenko avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.