Android Studio设计活动时组件未显示

3
当我创建了我的第一个Hello World应用程序时,我使用Android Studio并且发现看不到文本视图。我尝试向设计或蓝图中拖放其他组件(如按钮),但仍然没有显示出来。然而,当我构建Hello World应用程序时,在模拟器中会显示Hello World文本视图。我在互联网上搜索了很多,但是没有找到任何解决方法。
我附带了下面的屏幕截图。
Android Studio 生成了以下错误:
java.lang.ClassNotFoundException: android.view.View$OnUnhandledKeyEventListener
at org.jetbrains.android.uipreview.ModuleClassLoader.load(ModuleClassLoader.java:180)
at com.android.tools.idea.rendering.RenderClassLoader.findClass(RenderClassLoader.java:61)
at org.jetbrains.android.uipreview.ModuleClassLoader.findClass(ModuleClassLoader.java:118)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.jetbrains.android.uipreview.ModuleClassLoader.loadClass(ModuleClassLoader.java:213)
at android.support.v7.widget.ActionBarContainer.<init>(ActionBarContainer.java:62)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:481)
at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:264)
at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:222)
at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:209)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:337)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:348)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:248)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:863)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:837)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at com.android.layoutlib.bridge.bars.BridgeActionBar.<init>(BridgeActionBar.java:89)
at com.android.layoutlib.bridge.bars.AppCompatActionBar.<init>(AppCompatActionBar.java:68)
at com.android.layoutlib.bridge.impl.Layout.createActionBar(Layout.java:277)
at com.android.layoutlib.bridge.impl.Layout.<init>(Layout.java:161)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:288)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:384)
at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:193)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:544)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$3(RenderTask.java:678)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

以下是截图:

错误图片


有一个小红感叹号。这表示Android Studio遇到了一些问题,无法呈现布局。您可以单击感叹号查找问题所在(未构建项目只是可能导致问题的一件事)。 - Bö macht Blau
@0X0nosugar 感谢回复。我点击了感叹号,它显示了一个错误,我已经编辑了我的问题。你能帮忙吗? - Nouman Ahmad
6个回答

8

我曾遇到相同的问题,但通过对位于资源(res)目录中的styles.xml文件进行小改动解决了它。

将Parent从"Theme.AppCompat.Light.DarkActionBar"改为"Base.Theme.AppCompat.Light.DarkActionBar"。


嗨@Chaithanya,你使用过抽屉布局吗?上述解决方案适用于空活动,但现在我遇到了与-android.support.v4.widget.DrawerLayout相同的问题。任何帮助都将受到优先考虑。提前致谢。 - Nouman Ahmad
虽然我对Android非常陌生,但我通过那个解决方案解决了我的问题,但不确定是否适用于那个布局。这个资源可能对你有帮助,可以去看看:https://developer.android.com/reference/android/support/v4/widget/DrawerLayout - Chaithanya Krishna

7
在Apptheme设置方面出现问题。将默认的AppTheme更改为其他主题即可解决问题。 请参考我标记的Apptheme位置的截图,只需将默认主题更改为其他主题即可。
截图: enter image description here

@P Kumarasamy,谢谢你的帮助,这对我很有帮助。但是,你能解释一下为什么默认主题会导致这个问题吗? - Nouman Ahmad
1
谢谢你的提示。昨天我浪费了4个小时,试图弄清楚为什么在设计视图中看不到任何东西。希望我能多次点赞你的答案。 - birwin
同意@birwin的说法,这让我感到非常烦恼 - 我现在还是有点疯狂,但现在是快乐的疯狂。 - DaveStSomeWhere

2
在Values文件夹下找到Styles.xml (res/Values/Styles.xml),将其修改为以下内容:“最初的回答”。
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

转换为:

<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">

然后清理并构建项目。这两个操作都可以在“构建”菜单中完成。

我试过了,它对我起作用了。


1
res>values>styles.xml 中:
更改:
Theme.AppCompat.Light.DarkActionBar

Base.Theme.AppCompat.Light.DarkActionBar

0

一开始我使用了@ChaithanyaKrishna提出的方法,但后来发现问题仍未得到妥善解决。例如Drawer-layout等某些布局无法正确渲染,解决此问题的方法是将SDK级别降低到26。这可以解决大部分渲染问题。

我已经在build.Gradle(Module:app)中更改了我的SDK和依赖级别。

apply plugin: 'com.android.application'

android {
   compileSdkVersion 26
   defaultConfig {
    applicationId "com.example.itnoa.asdf"
    minSdkVersion 15
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
     release {
       minifyEnabled false
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
     }
}
}

dependencies {
  implementation fileTree(include: ['*.jar'], dir: 'libs')
  implementation 'com.android.support:appcompat-v7:26.0.0'
  implementation 'com.android.support.constraint:constraint-layout:1.1.2'
  implementation 'com.android.support:support-v4:26.0.0-alpha3'
  implementation 'com.android.support:support-v4'
  testImplementation 'junit:junit:4.12'
  androidTestImplementation 'com.android.support.test:runner:1.0.2'
  androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

0

我刚刚通过删除布局文件并重新创建它来解决了这个问题。 我尝试了上面提到的所有方法,但都没有对我起作用。 希望能帮助到其他人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接