我试图打开预览,但无法打开。
我尝试再次打开工作室,但是预览仅显示空白屏幕,并且内部没有任何内容。 当我再次打开它时,它在预览侧显示以下消息:
A successful build is needed before the preview can be displayed
构建过程已完成,并尝试进行多次构建,但仍显示相同的错误。
我在其中使用了简单的文本。
@Composable
fun Greeting(name: String) {
Text (text = "Hello $name!")
}
这是我的全部内容:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Greeting("Android")
}
}
@Composable
fun Greeting(name: String) {
Text (text = "Hello $name!")
}
@Preview
@Composable
fun PreviewGreeting() {
Greeting("Android")
}
}
如果有人知道这个问题,请分享答案。
答案 0 :(得分:2)
尝试一下:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Greeting("Android")
}
}
@Composable
fun Greeting(name: String) {
Text (text = "Hello $name!")
}
}
@Preview
@Composable
fun PreviewGreeting() {
Greeting("Android")
}
答案 1 :(得分:1)
我遇到了同样的问题,当我点击“Run with --info”时得到的构建错误消息是:
e: This version (1.0.0-alpha13) of the Compose Compiler requires Kotlin version 1.4.30 but you appear to be using Kotlin version 1.5.0 which is not known to be compatible. Please fix your configuration (or `suppressKotlinVersionCompatibilityCheck` but don't say I didn't warn you!).
所以我去了项目级别 build.gradle 文件,更改前的一个片段(您可以根据错误消息更改版本)-
buildscript {
..
..
dependencies {
classpath "com.android.tools.build:gradle:7.0.0-alpha15"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.0"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
..
..
}
因此,根据错误消息,我将kotlin-gradle-plugin 版本从 1.5.0 更改为 1.4.30,如下所示:-
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.0"
到
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.30"
在此之后,我对 gradle 文件进行了“立即同步”并在预览选项卡中进行了“构建和刷新”,希望 兼容性问题 消失了,我能够看到实时预览。
这可能不是最好的解决方案,因为我们需要降级 kotlin 版本,但是它对我有用,你可以试一试!!
答案 2 :(得分:0)
请仔细遵循开发人员的文档,请在MainActivity之外定义您的Greeting函数和PreviewGreeting函数,请执行以下操作
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.Composable
import androidx.compose.unaryPlus
import androidx.ui.core.Text
import androidx.ui.core.dp
import androidx.ui.core.setContent
import androidx.ui.foundation.DrawImage
import androidx.ui.graphics.Color
import androidx.ui.layout.*
import androidx.ui.material.MaterialColors
import androidx.ui.material.MaterialTheme
import androidx.ui.res.imageResource
import androidx.ui.tooling.preview.Preview
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MaterialTheme(
colors = MaterialColors(
primary = Color.Black,
background = Color.Cyan,
secondary = Color.Magenta
)
) {
Greeting("Hello World")
}
}
}
}
@Composable
fun Greeting(name: String) {
val image = +imageResource(R.drawable.ic_launcher_round)
Column(crossAxisSize = LayoutSize.Expand, modifier = Spacing(16.dp)) {
Text(name)
Text(name)
Text(name)
HeightSpacer(50.dp)
Container(expanded = true, height = 100.dp, width = 100.dp) {
DrawImage(image)
}
}
}
@Preview
@Composable
fun DefaultPreview() {
val image = +imageResource(R.drawable.ic_launcher_round)
Column(crossAxisSize = LayoutSize.Expand, modifier = Spacing(16.dp)) {
Text("Android")
Text("Android")
Text("Android")
Text("Hello")
HeightSpacer(50.dp)
Container(expanded = true, height = 100.dp, width = 100.dp) {
DrawImage(image)
}
}
}
答案 3 :(得分:0)
我相信您可能已经修复它,但仍会回答,因为尚无公认的答案。
我尝试从Empty Compose Activity
项目模板创建项目。并显示上述错误。
app:build.gradle
文件中存在问题。
将compileSdkVersion 'Google Inc.:Google APIs:23'
替换为compileSdkVersion
29
将targetSdkVersion 23
替换为targetSdkVersion 29
清理并构建项目,问题应该得到解决。
答案 4 :(得分:0)
按照以下步骤为我工作:
在运行命令之前,单击预览屏幕很重要。
答案 5 :(得分:0)
我遇到了同样的问题,使缓存无效并重新启动对我来说是可行的。
答案 6 :(得分:0)
当您第一次创建compose项目时,这有点奇怪,预览无法正常工作,一个非常简单的解决方案是转到Build-> Rebuild菜单来重建您的项目,并且一切正常:) Image Resource
答案 7 :(得分:0)
构建关闭文件后,从左侧的文件树重新打开它,然后它应该可以工作。我在他们没有预览,所以现在它说没有预览找到通过注释可堆肥添加预览@Preview
但我认为它对你有用