我们正在使用Crittercism来分析应用程序崩溃情况,但由于我们还使用了默认混淆选项的DexGuard,因此Crittercism无法使用DexGuard生成的mappings.txt对混淆后的堆栈跟踪进行反混淆。
所以,我的问题很简单:
如何禁用DexGuard混淆的非ASCII字符?
顺便说一下,我们正在使用Gradle构建系统。
我们正在使用Crittercism来分析应用程序崩溃情况,但由于我们还使用了默认混淆选项的DexGuard,因此Crittercism无法使用DexGuard生成的mappings.txt对混淆后的堆栈跟踪进行反混淆。
所以,我的问题很简单:
如何禁用DexGuard混淆的非ASCII字符?
顺便说一下,我们正在使用Gradle构建系统。
想知道您为什么认为禁用非ASCII字符会修复Crittercism对DexGuard混淆堆栈跟踪的处理问题?据我所知,他们需要使用DexGuard中的ReTrace.jar而不是ProGuard(抱歉,我不知道是否可能关闭Non-ASCII字符)。
对我来说,这似乎是Crittercism的问题,他们是否支持DexGuard?我大约一年前问过他们的支持团队(support@crittercism.com)关于DexGuard支持,它甚至没有出现在他们的路线图上。
如果您不绑定于Crittercism,我知道Crashlytics和Hockeyapp支持DexGuard(这也是我切换到Crashlytics的原因之一)。
更新
今天我偶然发现了这个。您可以覆盖DexGuard的默认混淆词典并定义仅ASCII字符。
在您的dexguard-project.txt中定义。
-obfuscationdictionary dictionary.txt
-classobfuscationdictionary classdictionary.txt
-obfuscationdictionary emptydictionary.txt -classobfuscationdictionary emptyclassdictionary.txt
这是由制作者Eric LaFortune确认的正确方法。因此,您是完全正确的,这是被接受的答案。 - arne.jans