hel*_*and 8 android android-studio android-gradle-plugin layout-inspector android-jetpack-compose
当我使用 Android Studio Giraffe 时尝试在我的项目上使用布局检查器时,我收到上面的错误消息 | 2022年3月1日金丝雀6号。
我也尝试过用Android Studio Electric Eel | 2022.1.1 补丁 1。在那里我只收到错误消息:Compose 检查不可用。
对于版本控制,我使用 chris banes 的 BOM
composeOptions {
kotlinCompilerExtensionVersion '1.4.0'
}
dependencies{
androidx.compose = 2023.02.00-alpha02
..
implementation platform("dev.chrisbanes.compose:compose-bom:${androidx.compose}")
androidTestImplementation platform("dev.chrisbanes.compose:compose-bom:${androidx.compose}")
implementation "androidx.compose.ui:ui"
implementation "androidx.compose.ui:ui-util"
implementation "androidx.compose.material:material"
implementation "androidx.compose.material:material-icons-extended"
implementation "androidx.compose.ui:ui-tooling"
debugImplementation "androidx.compose.ui:ui-tooling"
implementation "androidx.compose.ui:ui-tooling-preview"
Run Code Online (Sandbox Code Playgroud)
我还尝试使用自己的版本而不使用 BOM,但这给了我同样的问题。使缓存失效和重建项目也不起作用。
有人知道如何解决这个问题并再次开始使用我的布局检查器吗?
感谢@Edric 的回复,我发现了为什么布局检查器对我不起作用的问题。
gradle.kts我的文件中有以下代码
packagingOptions {
resources.excludes.add("META-INF/**")
}
Run Code Online (Sandbox Code Playgroud)
您需要将其删除并添加到 gradle 文件的根目录中
androidComponents {
onVariants(selector().withBuildType("release")) {
it.packaging.resources.excludes.add("META-INF/**")
}
}
Run Code Online (Sandbox Code Playgroud)
例如:
android {
...
}
androidComponents {
onVariants(selector().withBuildType("release")) {
it.packaging.resources.excludes.add("META-INF/**")
}
}
Run Code Online (Sandbox Code Playgroud)
如前所述,修复方法是将 compose-ui 更改为1.4.0-beta02:
implementation("androidx.compose.ui:ui:1.4.0-beta02")
Run Code Online (Sandbox Code Playgroud)
(或通过版本目录:)
name-of-library = "androidx.compose.ui:ui:1.4.0-beta02"
# Or
name-of-library = { module = "androidx.compose.ui:ui", version = "1.4.0-beta02" }
Run Code Online (Sandbox Code Playgroud)
或者使用alpha Compose BoM的2023.02.00-beta03:
implementation(platform("dev.chrisbanes.compose:compose-bom:2023.02.00-beta03"))
Run Code Online (Sandbox Code Playgroud)
(或通过版本目录:)
name-of-bom = "dev.chrisbanes.compose:compose-bom:2023.02.00-beta03"
# Or
name-of-bom = { module = "dev.chrisbanes.compose:compose-bom", version = "2023.02.00-beta03" }
Run Code Online (Sandbox Code Playgroud)
这是因为布局检查器期望的androidx.compose.ui_ui.version文件(在META-INF构建的 APK 的目录中)具有无效版本:
task ':compose:ui:ui:writeVersionFile' property 'version'
Run Code Online (Sandbox Code Playgroud)
(奇怪的是,这也发生在其他一些依赖版本上:)
( androidx.browser_browser.version)
task ':browser:browser:writeVersionFile' property 'version'
Run Code Online (Sandbox Code Playgroud)
Google IssueTracker中的一些快速谷歌搜索导致了一个问题,该问题记录了影响版本的错误1.4.0-alpha05,1.4.0-alpha06以及1.4.0-beta01。
随后提交了修复程序以解决版本问题,并已应用于1.4.0-beta02 (2 月 22 日发布)。
此错误似乎是由于之前将文件(用于编写版本文件)中的属性转换为使用VersionFileWriterTaskGradle 的延迟配置属性而引起的:
task ':compose:ui:ui:writeVersionFile' property 'version'
Run Code Online (Sandbox Code Playgroud)
然而,正如version现在围绕 Gradle 的Property界面所包装的那样,它将需要额外的代码来检索其值,在本例中只需一个简单的get()调用(如最近的提交所示):
task ':browser:browser:writeVersionFile' property 'version'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3962 次 |
| 最近记录: |