[英]no line numbers (e.g. for Log.getStackTraceString) with Jack compiler
我們已經切換到我們的Android應用程序的Jack編譯器,以利用Java8功能。 然而,當我們啟用縮小( minifyEnabled true
)時,我們看到我們的應用程序在看似隨機的地方崩潰(它與舊的javac + proguard + dex一起工作正常)。
為了節省時間,我們決定禁用縮小,但現在我們遇到的問題是我們的錯誤報告庫將所有callstack報告為未知行號。 我還確認我們使用Log.getStackTraceString
得到了相同的破壞堆棧跟蹤
例如
com.foo.android.bar: XXX
at com.foo.android.bar.quax(Unknown Source)
似乎只給我們回調函數的唯一一件事就是啟用debug( debuggable true
),但是我們無法將這樣的應用程序提交到商店中。
有任何想法嗎?
事實證明,Gradle插件驅動Jack如下:
如果debug
版本保留源+行信息
如果non-debug
剝離所有源+行信息
要解決這個問題,您可以明確要求Jack保留源/行信息(在您的gradle文件中):
jackOptions {
enabled true
additionalParameters(
"jack.dex.debug.lines": "true",
"jack.dex.debug.source": "true")
}
注意:參數的值必須是一個字符串!
您可以獲得Jack支持的所有有效參數,如下所示:
java -jar <SDK>/build-tools/<build-tools-version>/jack.jar --help-properties
更多信息( https://code.google.com/p/android/issues/detail?id=228093 )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.