2010-10-12 83 views

回答

109

將下列行添加到您的proguard配置中。

-renamesourcefileattribute SourceFile  
-keepattributes SourceFile,LineNumberTable 

現在您的堆棧跟蹤將包括行號,並通過使用回掃工具附帶使用ProGuard(包含在Android SDK),您可以像調試正常。

請注意,即使您沒有使用這兩個配置選項,回溯仍然可以輸出有用的信息,只要您有映射文件,儘管不是完全明確。

注:與映射文件被ProGuard的配置選項生成:

-printmapping outputfile.txt 

在隨Android SDK的Ant文件,它被設置爲的mapping.txt。

祝你好運。

15

要使用Android Market帳戶中的任何堆棧跟蹤,可以使用ProGuard配置中-printmapping選項生成的地圖文件與ReTrace(ProGuard配套工具)解碼堆棧跟蹤。您也可以使用地圖文件的內容手工解碼,但這很枯燥。

在ProGuard手冊的示例中,有一節介紹如何生成有用的混淆堆棧軌跡,包括如何保留行號。

不幸的是,如果您沒有設置ProGuard來保留行號,那麼您將只能識別拋出異常的方法。

+4

這個過程也在http://developer.android.com/guide/developing/tools/proguard.html所解釋的ProGuard生成的輸出文件#decoding – 2011-03-17 10:21:33

+0

進入ADT 17(目前是預覽版)是對PorGuard爲Androi配置的進一步改變d。 http://tools.android.com/recent/proguardimprovements它不會更改如何使用打印映射進行調試,但它會改變最初配置ProGuard的方式。 – cistearns 2012-03-04 19:56:24

+0

@cistearns我試過一樣,但出來的是相同的編碼值:(任何幫助? – 2014-01-10 04:56:37

4

在stack_trace.txt

運行以下命令粘貼您的堆棧跟蹤:Java的罐子retrace.jar classes-processed.map stack_trace.txt

retrace.jar是在SDK \工具\ proguard的\ LIB \ retrace.jar classes-processed.map是,當你做了模糊處理