gpt4 book ai didi

android - 如何将 proguard 与数据绑定(bind)一起使用(aap​​t_rules.txt 中的 proguard.ParseException)?

转载 作者:行者123 更新时间:2023-11-29 15:39:20 24 4
gpt4 key购买 nike

我为我的项目启用了 proguard 并收到以下错误:

01:25:13.221 [ERROR] [org.gradle.BuildExceptionReporter] > java.io.IOException: proguard.ParseException: Expecting opening '(' or separator ';' before '{' in line 147 of file '/blalblah/proguard-rules/release/aapt_rules.txt'

提到的那行看起来确实很有趣:

# onClick res/layout/host_entry.xml #generated:35
-keepclassmembers class * { *** ${()->cb.onDeleteClicked(host)}(...); }

这看起来像是我布局中的一些复制粘贴:

        <ImageButton
....
android:onClick="${()->cb.onDeleteClicked(host)}" />

因此一些混淆器配置生成器认为只有一些方法名称可以指定为 onClick 值,并且只是将表达式放入混淆器配置中。

是否可以在不摆脱漂亮的 lambda onclick 处理程序的情况下让它工作?

最佳答案

AAPT 在这里表现正确。它被配置为忽略 Proguard 配置生成的数据绑定(bind)表达式值。但是你的不是数据绑定(bind)表达式:

android:onClick="${()->cb.onDeleteClicked(host)}"

相反,您必须使用 @{}:

android:onClick="@{()->cb.onDeleteClicked(host)}"

${} 是不受支持的 shell 表达式。

关于android - 如何将 proguard 与数据绑定(bind)一起使用(aap​​t_rules.txt 中的 proguard.ParseException)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43701199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com