Android Studio Jetpack合成预览在Arctic Fox中使用修补程序1时停止工作

mf98qq94  于 2023-03-09  发布在  Android
关注(0)|答案(3)|浏览(125)

随着AS北极狐喷气背包的第一个补丁,合成预览停止工作。
我得到这个错误的所有预览-甚至旧的,这工作很好的一段时间回来:

android.content.res.Resources$NotFoundException: Could not resolve resource value: [some hex value]

这里有什么快速解决这个问题的方法吗?清除缓存和通常的东西不起作用。

    • 编辑:**

看起来问题并不总是存在。一些预览开始工作,而其他仍然失败。

    • 编辑2:**

当需要主模块中的资源或正在使用painterResource()时(即使要显示同一模块中的资源),动态特性模块中也会发生这种情况。

r1zhe5dt

r1zhe5dt1#

同样的问题在这里与动态模块项目。受上述答案的启发,我已经做了另一个临时变通,同时等待组成团队来解决这个问题。

import androidx.compose.ui.res.stringResource as originalStringResource

@Composable
@ReadOnlyComposable
fun stringResourceSafe(@StringRes id: Int): String =
    if (BuildConfig.DEBUG) {
        val resources = LocalContext.current.resources
        try {
            resources.getString(id)
        } catch (e: Resources.NotFoundException) {
            "missing res."
        }
    } else {
        originalStringResource(id)
    }
62o28rlo

62o28rlo2#

此问题已在AS大黄蜂补丁2中修复。
编辑(从注解复制):然后在Electric Eel | 2022.1.1中再次断裂,并在Flamingo | 2022.2.1 Beta 4中再次修复。

bpzcxfmw

bpzcxfmw3#

作为一个临时的黑客解决方案,我这样做是为了克服错误并预览UI元素。

//import androidx.compose.ui.res.stringResource

fun stringResource(id: Int): String {
    when (id) {
        R.string.res_id -> return "Foo"
        ...
    }
    return "missing res_id"
}

相关问题