1. 程式人生 > >[Android]檢視程式碼混淆後的日誌

[Android]檢視程式碼混淆後的日誌

APP混淆已經是APP釋出時的標配技術了,但是我們經常需要去看使用者使用APP時的崩潰日誌,這個時候,看到的日誌確是被混淆了,比如a.b.c.c()!就要狂了。所以,Google當然會為我們考慮到這種情況。下面對具體的使用進行說明。

程式碼混淆生成apk之後,專案下面會多出來一個build\outputs\mapping\release資料夾,下面分別解釋release資料夾中四個檔案的作用。

dump.txt : 描述了apk中所有類 檔案中內部的結構體。( Describes the internal structure of all the class files in the .apk file )

mapping.txt : 列出了原始的類、方法和名稱與混淆程式碼間的對映。( Lists the mapping between the original and obfuscated class, method, and field names. )

seeds.txt : 列出了沒有混淆的類和方法。( Lists the classes and members that are not obfuscated )

usage.txt : 列出congapk中刪除的程式碼。( Lists the code that was stripped from the .apk )

1.cmd進入sdk/tools/proguard/bin目錄。

2.將混淆後的日誌cache_file_name.txt和上文提到的mapping檔案放入此目錄中。

3.執行命令:retrace.bat mapping.txt cache_file_name.txt

執行命令前:

Casused by: Java.lang.NullPointerException

at com.example.test d.a.c(SourceFile:110)

at com.example.test d.a.c(SourceFile:88)

at com.example.test .activity.CommitFragmentBase.init(SourceFile:1330
)

執行命令後:

Casused
 by: java.lang.NullPointerException

at com.example.test loginActivity.login.setView(SourceFile:110)

at com.example.test dloginActivity.login.setView(SourceFile:88)

at com.example.test .activity.CommitFragmentBase.init(SourceFile:1330)

相關推薦

[Android]檢視程式碼混淆日誌

APP混淆已經是APP釋出時的標配技術了,但是我們經常需要去看使用者使用APP時的崩潰日誌,這個時候,看到的日誌確是被混淆了,比如a.b.c.c()!就要狂了。所以,Google當然會為我們考慮到這種情況。下面對具體的使用進行說明。 程式碼混淆生成apk之後,

Android 微信支付 程式碼混淆打包,導致不能支付的原因

程式碼混淆: -libraryjars libs/libammsdk.jar -keep class com.tencent.** { *;} 如果您的專案中也引用了dom4j.jar,那麼就新增上下

關於Android Stuido 程式碼混淆打包簽名,高德地圖定位出不來

使用的是Android Stuido 來開發安卓。專案需要接入了高德定位的sdk,在高德開放平臺上申請了key,程式碼直接執行在手機上,和直接拿build下面的apk定位都是可以使用。在程式碼混淆簽名生成的apk定位就是出不來,一直以為是將高德的sdk也給混淆後才不能用,在

Android 打包 + 程式碼混淆

一:打包生成一個 Apk            生成一個 Apk 是比較簡單的,直接使用 Android Stuido 的打包工具就可以快速的生成一個 Apk 檔案,在這裡多插一句題外話吧,嘿嘿,就是關於使用多渠道打包和一套程式碼打

Android Studio 程式碼混淆注意問題

Java 是一種跨平臺的、解釋型語言,Java 原始碼編譯成中間”位元組碼”儲存於 class 檔案中。由於跨平臺的需要,Java 位元組碼中包括了很多原始碼資訊,如變數名、方法名,並且通過這些名稱來訪問變數和方法,這些符號帶有許多語義資訊,很容易被反編譯成 Java 原始碼。

Android Apk 程式碼混淆與資原始檔混淆實戰

Android專案在完工釋出時,需要對程式碼和資原始檔進行混淆,目的有兩個: 1⃣️減小壓縮包的體積 2⃣️防止程式碼被反編譯後惡意利用 Android Apk混淆分兩步走: 1⃣️混淆程式碼 2⃣️混淆資原始檔 本人的開發環境為: Oper

android studio 程式碼混淆

原文連結   http://blog.csdn.net/ttccaaa/article/details/47687241  侵刪 關於程式碼混淆的作用,就不多解釋了,整個過程大致如下: 在app下的build.gradle檔案中新增如下程式碼(minifyEna

eclipse Android開發程式碼混淆

  程式碼混淆對於一個完善的app 必不可少的    1、新建一個Android 專案時,會自動生成兩個檔案proguard-project.txt ,  project.properties   只需要將project.properties

Android APP程式碼混淆proguard和加固

    proguard官方網址:http://proguard.sourceforge.net/index.html#/manual/examples.html  一、在gradle中開啟: Gradle專案(以及Android Studio) 在build.gradle中進行配置 android {

android開發-----程式碼混淆

為了防止自己的勞動成果被別人竊取,混淆程式碼能有效防止被反編譯,下面來總結以下混淆程式碼的步驟: 1. 大家也許都注意到新建一個工程會看到專案下邊有這樣proguard-project.txt一個檔案,這個對混淆程式碼很重要,如果你不小心刪掉了,沒關係,從其他地方拷貝一

Android Studio 程式碼混淆配置大全

proguard 配置 -keepclasseswithmembers 指定的類和類成員被保留,假如指定的類成員存在的話。 -dontwarn 預設proguard 會檢查每一個引用是否正確,但是第三方庫裡面往往有些不會用到的類,沒有正確引用。如果不配置的話,系統就會

Android Stuido程式碼混淆以及打包

當代碼書寫完成之後,我們需要將程式碼打包,傳送到各個app市場,在這之前,我們通常需要將程式碼進行程式碼混淆,此文章將介紹程式碼混淆,並且給大家提供一個比較完成的混淆文件,可以直接拿來即用。 程式碼混淆部分 1.修改app/ build.gr

Android 進階」Android 專案程式碼混淆,防反編譯

前言 安全意思比較薄弱,參與負責專案工程程式碼無混淆程式碼,究其原因 混淆會導致 App 執行可能出錯,不願深入研究; 測試與產品經理規劃中無此需求; 在圖形化反編譯工具 jadx 面前,工程核心程式碼一覽無餘, 新工作中測試人員提出,專案 app 必須

程式碼混淆可能出現的問題

1、ClassNotFoundException,NoSuchMethodError 原因:這種異常會在好多情況下出現,比如:原生代碼通過反射呼叫其他的類,但是經過了混淆之後,就會出現如上異常;呼叫了JNI之後,C或者C++和java程式碼進行

android使用百度地圖最新sdk5.0程式碼混淆時,地圖無法顯示閃退問題

描述:剛開始遇到這個問題我一步一步去排除,最後發現在初始化地圖的時候,程式碼混淆就有問題了, 問題描述:當跳顯示地圖的頁面APP閃退, 解決對比: 1:對於老版本百度sdk:程式碼混淆時語句: -libraryjars libs/baidumapapi_v3_3_0.jar

android 在釋出程式禁止程式的日誌log輸出

android程式在釋出後,會禁用日誌的輸出以提高效率。 其實現在很多手機直接禁用了低級別的日誌輸出,例如在手機上測試的時候可能會發現log.v,log.d輸出在控制檯看不見,而在模擬器上面可以輸出。就是因為被系統禁了。 為了方便除錯的時候有除錯輸出,在釋出後禁止日誌輸出。我們可以自定義一個

解決Android簽名混淆WebView與JS互動失效的問題

最近做了個網頁端微信支付的小功能,測試版還好好的,混淆打包後,寫的方法webview無法呼叫,意識到混淆除了問題,於是在網上找了一些大神的解決方案,再根據自己的實際解決過程,列出來一個完整的解決方法。 Android4.2以上版本呼叫js介面需要在方法使用宣告@JavascriptInterfa

安全程式設計之Android APK打包程式碼混淆

第一步:在專案工程目錄下的proguard-rules.pro檔案中配置自定義的混淆規則 #注意: #1.引用外部的jar包 如果不是自己寫的最好不混淆它們,因為外部jar包有可能已經混淆過 #2.不要混淆XML佈局中使用的自定義控制元件類,混淆後加載佈局會報找不到該控制

android 混淆,反射R檔案內部類報錯

專案中由於用到了下面方法來 反射R檔案獲取layout的佈局id。但是混淆後,發現報錯 android.content.res.Resources$NotFoundException: Resource ID #0x0 經過網上查詢都是在 proguard-r

android 程式碼混淆排除指定內部類

安卓中有時候我們需要呼叫固定名稱的內部類,如js回撥,我們需要保持這些內部類不被混淆,才能正確的呼叫到 在網上找到了解決辦法 -keepnames class 包名.類名$* {     public <fields>;     public <metho