gpt4 book ai didi

android - 如何为android数据绑定(bind)点击监听器编写proguard规则?

转载 作者:行者123 更新时间:2023-12-03 19:25:56 26 4
gpt4 key购买 nike

我在我的应用程序中使用 databinding,它运行良好。但是当我启用 minifyEnabled trueshrinkResources true 时,它​​会显示一些错误。

Execution failed for task':app:transformClassesAndResourcesWithR8ForDebug'.
Caused by: com.android.tools.r8.utils.AbortException: Error: D:\TUK_Sep_Conclave\TUK_Septmber\app\build\intermediates\proguard-rules\debug\aapt_rules.txt, offset: 48276, line: 457, column: 33, Expected field or method name at D:\TUK_Sep_Conclave\TUK_Septmber\app\build\intermediates\proguard-rules\debug\aapt_rules.txt:457:33

-keepclassmembers class * { *** @{(view)->listener.onClick(view)}(android.view.View); }
^
at com.android.tools.r8.utils.Reporter.failIfPendingErrors(Reporter.java:101)

Suppressed: com.android.tools.r8.shaking.ProguardRuleParserException: Expected field or method name at D:\TUK_Sep_Conclave\TUK_Septmber\app\build\intermediates\proguard-rules\debug\aapt_rules.txt:457:33
-keepclassmembers class * { *** @{(view)->listener.onClick(view)}(android.view.View); }

我的 layout.xml
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.ui.user.activity.ContactUsActivity"
tools:ignore="HardcodedText">

<data>

<variable
name="listener"
type="com.example.ui.user.activity.ContactUsActivity" />

</data>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
android:id="@+id/action_call_one"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:gravity="center"
android:onClick="@{(view)->listener.onClick(view)}"
android:padding="3dip"
android:text="+91-1234567890"
android:textColor="@android:color/white"
android:textSize="12sp" />

</LinearLayout>

</layout>

现在我的问题是如何为android数据绑定(bind)和点击监听器编写progaurd规则。任何帮助将不胜感激,谢谢。

最佳答案

这是一个非常古老的问题,但可以回答将面临这个问题的其他人。
请检查这些步骤以解决问题。
步骤#1

//Don't forget to add this rule in proguard-rules.pro

-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
步骤#2
请仔细检查调用的布局文件
android:onClick="@{(view)->listener.onClick(view)}"
检查顶部它必须包含变量
<variable
name="listener"
type="com.example.ui.user.activity.ContactUsActivity" />
如果上面的任何布局文件中缺少变量,就会出现错误。
步骤#3
如果您的问题尚未解决,那么您必须更改
android:onClick="@{(view)->listener.onClick(view)}"
android:onClick="@{listener::onClick}"

关于android - 如何为android数据绑定(bind)点击监听器编写proguard规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57283336/

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