每当我与几乎任何作曲控件交互时,应用程序都会崩溃. 只是发布,调试工作正常. 错误说: androidx. compose. ui. R $id缺少hide_in_inspector_tag

stacktrack在下面.

这肯定是R8的问题. 我一直在为proguard配置添加一些东西,并达到了至少你看到类和字段名称的点,但到目前为止我不能得到保留字段.

我一周前的一次发布会上没有这个问题. 我更新了Android Studio, Android Studio Iguana| 2023.2.1补丁1

与:

gradleplugin = "8.3.1"
gradleAndroidCommandPlugin = "1.6.2"

我觉得我一定有一些版本不匹配,但我似乎找不到.

我在proguard中try 了以下方法,但没有运气:

-keep class androidx.compose.ui.R$id { *; }
-keepclassmembers class androidx.compose.ui.R$id {
  <init>(...);
  <fields>;
}
-keep class androidx.compose.ui.R$id {
    public static <fields>;
}
-keep class androidx.compose.ui.R$id {
    static int hide_in_inspector_tag;
}
E  java.lang.NoSuchFieldError: No static field hide_in_inspector_tag of type I in class Landroidx/compose/ui/R$id; or its superclasses (declaration of 'androidx.compose.ui.R$id' appears ....ExHFPZftc_jp0b694EN84A==/base.apk)
                         E      at androidx.compose.material.ripple.RippleContainer.<init>(SourceFile:49)
                         E      at androidx.compose.material.ripple.AndroidRippleIndicationInstance.getOrCreateRippleContainer(SourceFile:48)
                         E      at androidx.compose.material.ripple.AndroidRippleIndicationInstance.addRipple(SourceFile:1)
                         E      at androidx.compose.material.ripple.Ripple$rememberUpdatedInstance$1$1.emit(SourceFile:2)
                         E      at androidx.compose.material.ripple.Ripple$rememberUpdatedInstance$1$1.emit(SourceFile:1)
                         E      at z7.F.B(SourceFile:214)
                         E      at z7.F$c.invokeSuspend(SourceFile:13)
                         E      at kotlin.coroutines.jvm.internal.a.resumeWith(SourceFile:12)
                         E      at w7.W.run(SourceFile:129)
                         E      at androidx.compose.ui.platform.AndroidUiDispatcher.performTrampolineDispatch(SourceFile:7)
                         E      at androidx.compose.ui.platform.AndroidUiDispatcher.access$performTrampolineDispatch(SourceFile:1)
                         E      at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.run(SourceFile:3)
                         E      at android.os.Handler.handleCallback(Handler.java:938)
                         E      at android.os.Handler.dispatchMessage(Handler.java:99)
                         E      at android.os.Looper.loopOnce(Looper.java:201)
                         E      at android.os.Looper.loop(Looper.java:288)
                         E      at android.app.ActivityThread.main(ActivityThread.java:7839)
                         E      at java.lang.reflect.Method.invoke(Native Method)
                         E      at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
                         E      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
                         E      Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.ui.platform.MotionDurationScaleImpl@9784809, androidx.compose.runtime.h@e1f9a0e, N0{Cancelling}@9390c2f, Androi```

推荐答案

我创建了一个测试项目,它运行得很好. 所以我开始try 缩小差异. 我将测试项目更新为相同版本的Compose BOM、kotlin和构建工具. 一样,仍然工作正常. 在我的项目中放置测试使用的相同的合成依赖项. 我的还是会崩溃. 测试仍然有效. 我的应用程序使用了一个作曲glide库,把它拿出来. 什么都没变. 我只是添加一个视图使用:

androidx-adaptive = { module = "androidx.compose.material3.adaptive:adaptive", version.ref = "adaptive" }
androidx-adaptive-layout = { module = "androidx.compose.material3.adaptive:adaptive-layout", version.ref = "adaptive" }
androidx-adaptive-navigation = { module = "androidx.compose.material3.adaptive:adaptive-navigation", version.ref = "adaptive" }

这是一个自适应的视图,用于处理窄屏幕和宽屏幕上的列表细节屏幕.

因此,将这些依赖项粘贴到测试项目中. 砰! 测试项目崩溃(它甚至没有使用,它只是包含它). 所以我想我要把风景撕下来花几天时间写下来. 我想我应该提出一个bug. 适应能力是阿尔法,所以...

我可以添加第一个依赖项,当添加第二个依赖项时,崩溃开始.

Android相关问答推荐

derivedStateOf与使用key和MutableState记住

Android应用程序中的背景问题

Android Compose Pages 3-一次加载所有页面,无需在LazyColumn中滚动,无需网络调用和内部滚动

Jetpack Compose主导航中的全屏图标列表

如何使用进度条和返回函数进行API调用,同时在Android上使用Kotlin保持高效?

看不到选项菜单栏

Clean MVVM 架构中的 API 响应处理

警告:应用必须面向 Android 13(API 级别 33)或更高版本.确实如此

如何将DrawableId参数传递给XML布局?

尽管我在onCreate()期间已经初始化,但仍出现未初始化的late init变量错误

Android - 如何使 TextInputEditText 的高度恰好为 2 行?

如何在 Jetpack Compose 中将文本绘制在另一个对象的中心?

如何在 Android 的 ViewModel 中使用 LiveData

判断 AAR 元数据时发现 Android 问题:androidx.core:core:1.12.0-alpha01 和 androidx.core:core-ktx:1.12.0-alpha01

从活动共享视图模型以使用 hilt 组合函数

MediumTopAppBar Material3 只更改大标题

如何在 BasicTextField 中全选焦点

Android build gradle 文件版本代码自动递增

运行一次 kotlin 流,但在下游收到两次

lambda 函数中的类型不匹配 - Kotlin