1、騰訊Bugly簡介
BuglySDK是可以上報bug到開發(fā)者后臺的sdk,獲取的信息可以包括用戶移動設(shè)備的硬件信息(平臺、系統(tǒng)、CPU架構(gòu)、內(nèi)存等各種信息)以及出錯的堆棧信息。總之,這是一個可以讓開發(fā)者快速獲取用戶端的設(shè)備信息的SDK,大大的提高了bug的修復(fù)效率。
2、注冊Bugly賬號
去Bugly官網(wǎng)注冊賬號獲取到APPID和APPKey等信息

3、集成Bugly插件
需要準(zhǔn)備BuglyCocosPlugin這個官網(wǎng)提供的插件

這里面有很多內(nèi)容,包括Android和iOS兩個平臺,可以獲取到j(luò)s C++ Lua等錯誤,這里只介紹Cocos-Lua的插件集成以及錯誤捕獲。
首先把bugly目錄放在cocos引擎的external文件內(nèi)

這里是確保可以用到CrashReport.h以及l(fā)ua文件內(nèi)的內(nèi)容(具體要看你的項目了)
然后把agent/Android目錄下面的.jar文件和BuglySDK/Android下面的.jar文件放到項目的libs目錄下面。


然后我們再把libBugly.so文件放進(jìn)$(PROJECT)/jni/prebuilt

具體要放那個so文件具體要看設(shè)備的CPU架構(gòu)來決定,有關(guān)so文件的知識建議仔細(xì)了解一下

然后修改proj.android/jni/Android.mk文件,修改這個資源是要生成我們bugly相關(guān)功能需要的so文件,有關(guān)Android.mk文件去這里了解一下走你~。

這些makefile代碼主要是新建了一個module,然后生成一個libbugly_native_prebuilt.so文件跟包一起支持Bugly的工作。
接下來我們需要在AndroidManifest.xml文件內(nèi)加一些代碼:

到這個地方,BuglyCocosPlugin這個插件我們已經(jīng)集成在我們的項目里面了,不過最開始我們申請的APPID還沒使用到,還是沒法和我們的后臺鏈接,那么這里我們來初始化一下這個插件
在Classes/AppDelegate.cpp文件的AppDelegate::applicationDidFinishLaunching()函數(shù)里面調(diào)用CrashReport::initCrashReport(const char* appId, bool debug)來對Bugly初始化。
對了,還要記得加上頭文件

OK,到目前為止,完成了大部分工作,不過還剩下最后一步,就是注冊錯誤上報函數(shù)。讓我們繼續(xù)
接下里修改Android.mk文件,用來支持Lua錯誤的捕獲
$(call import-moudle,external/bugly/lua)這局代碼加到最后面
并且在Classes/AppDelegate.cpp文件的AppDelegate::applicationDidFinishLaunching()函數(shù)里面調(diào)用接口BuglyLuaAgent::registerLuaExceptionHandler(...)進(jìn)行初始化,并且對剛才導(dǎo)入的頭文件進(jìn)行更新


最后在lua腳本的__G__TRACKBACK__這個腳本里面調(diào)用lua錯誤上報的bugly接口

到這里,接入工作就結(jié)束了,不過還沒有配符號表,符號表可以讓錯誤堆棧更加人性化,這里先不提了~
最后,應(yīng)用的出錯信息就可以獲取到了

新聞熱點
疑難解答