proguard 堆栈跟踪行号丢失
proguard stack trace line numbers missing
我在从我的 Proguarded 应用程序恢复堆栈跟踪时遇到问题,非常感谢您的帮助。
尽管我明确要求保留 SourceFile 和 LineNumberTable 等属性,但实际上并没有为我的应用程序保留它们。
我试过禁用缩小、优化和除混淆本身之外的所有功能,但似乎没有任何效果。我已经查找了其他问题,但每个人的问题似乎都可以通过保留 SourceFile 和 LineNumberTable 属性来解决,但这对我不起作用。
我使用的是 Proguard 版本 4.6,jdk 1.6。通过 ant 脚本使用 javac 创建的 Jar 文件。
Proguard 配置:
-libraryjars '...' #library jars here, omitted
-injars 'filename.jar'
-outjars 'export/filename.jar'
#-useuniqueclassmembernames
-dontusemixedcaseclassnames
-dontshrink
-dontskipnonpubliclibraryclassmembers
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
-keepparameternames
-printmapping 'export/mapping.map'
-dontoptimize
-dontnote "!DuplicateClassPrinter*"
-keep class org.** { *; }
-dontwarn org.**
-keep class myprogram.engine.scripting.functions.** {
<methods>;
}
-keep class scriptfacade.** {
<fields>;
<methods>;
}
-keep,allowshrinking class myprogram.engine.scripting.functions.* {
<methods>;
}
#...default keep classes etc below (omitted)
非常感谢,
柴堆
实际上问题不在于 proguard,而是默认情况下 ant 不保留行号。参见 this link
我在从我的 Proguarded 应用程序恢复堆栈跟踪时遇到问题,非常感谢您的帮助。
尽管我明确要求保留 SourceFile 和 LineNumberTable 等属性,但实际上并没有为我的应用程序保留它们。
我试过禁用缩小、优化和除混淆本身之外的所有功能,但似乎没有任何效果。我已经查找了其他问题,但每个人的问题似乎都可以通过保留 SourceFile 和 LineNumberTable 属性来解决,但这对我不起作用。
我使用的是 Proguard 版本 4.6,jdk 1.6。通过 ant 脚本使用 javac 创建的 Jar 文件。
Proguard 配置:
-libraryjars '...' #library jars here, omitted
-injars 'filename.jar'
-outjars 'export/filename.jar'
#-useuniqueclassmembernames
-dontusemixedcaseclassnames
-dontshrink
-dontskipnonpubliclibraryclassmembers
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
-keepparameternames
-printmapping 'export/mapping.map'
-dontoptimize
-dontnote "!DuplicateClassPrinter*"
-keep class org.** { *; }
-dontwarn org.**
-keep class myprogram.engine.scripting.functions.** {
<methods>;
}
-keep class scriptfacade.** {
<fields>;
<methods>;
}
-keep,allowshrinking class myprogram.engine.scripting.functions.* {
<methods>;
}
#...default keep classes etc below (omitted)
非常感谢,
柴堆
实际上问题不在于 proguard,而是默认情况下 ant 不保留行号。参见 this link