【发布时间】:2016-06-24 10:37:54
【问题描述】:
通过 SDK 管理器更新 Android Studio 和所有相关内容后,由于所有这些渲染问题,我无法再创建包含单个空白 Activity 的最简单的应用程序。不过,选择一个 Empty Activity 似乎仍然可以管理。
回到我的空白活动问题,这是对我的环境的总结:
Android Studio 1.5.1
Android SDK Tools 24.4.1
Android SDK Platform Tools 23.1
Android SDK Build Tools 23.0.2
Android Support Library 23.2
我在 activity_main.xml 和 content_main.xml 上都看到了大量的渲染问题错误消息。我将主题更改为 Holo Light,我将 IDE 中的 API 级别降级为 19,但无济于事。我的 activity_main.xml 和 content_main.xml 都显示为灰色 CoordinatorLayout。所以我不能将任何组件拖到 IDE 中的布局上。我错过了什么?!
2016 年 3 月 10 日编辑:添加有关设置和错误消息的详细信息...
这是我应用的 build.gradle 文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.udemycourse.notes"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.android.support:design:23.2.0'
}
Missing styles. Is the correct theme chosen for this layout? Note: One or more layouts are missing the layout_width or layout_height attributes. These are required in most layouts. The following classes could not be instantiated: android.support.design.widget.AppBarLayout android.support.design.widget.CoordinatorLayout android.support.design.widget.FloatingActionButton渲染窗口中显示的异常: java.lang.IllegalArgumentException:您需要将 Theme.AppCompat 主题(或后代)与设计库一起使用。在 android.support.design.widget.ThemeUtils.checkAppCompatTheme(ThemeUtils.java:34) 在 android.support.design.widget.AppBarLayout.(AppBarLayout.java:145) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 方法)在 sun.reflect.NativeConstructorAccessorImpl.newInstance(未知来源) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知 来源)在 java.lang.reflect.Constructor.newInstance(未知来源) 在 org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:458) 在 org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:170) 在 org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:103) 在 com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:168) 在 android.view.BridgeInflater.loadCustomView(BridgeInflater.java:247) 在 android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:171) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 在 android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:835) 在 android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:811) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:515) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:394) 在 com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:223) 在 com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:426) 在 com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:350) 在 com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:510) 在 com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:498) 在 com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:888) 在 com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:498) 在 com.android.tools.idea.rendering.RenderTask.access$600(RenderTask.java:72) 在 com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:610) 在 com.android.tools.idea.rendering.RenderTask$3.call(RenderTask.java:607) 在 com.android.tools.idea.rendering.RenderService.runRenderAction(RenderService.java:362) 在 com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:607) 在 com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:629) 在 com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel$6.run(AndroidDesignerEditorPanel.java:480) 在 com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320) 在 com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310) 在 com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254) 在 com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269) 在 com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227) 在 com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217) 在 com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) 在 com.intellij.util.Alarm$Request$1.run(Alarm.java:351) 在 java.util.concurrent.Executors$RunnableAdapter.call(未知来源) 在 java.util.concurrent.FutureTask.run(Unknown Source) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(未知来源)在 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(未知来源)
【问题讨论】:
-
你正面临一个通用问题,可以通过使用来自 AppCompact 的主题来避免。这将是这个 Theme.AppCompat,要么使用它,要么使用它的一些子类主题。这应该有效。
-
@PankajNimgade 当我更改为 AppCompat 时,仍然无法实例化一个类:
android.support.design.widget.FloatingActionButton。这是activity_main.xml。在 content_main.xml` 中。有一个异常堆栈也提到了FloatingActionButton,但是设计视图没有明确提到该类不能被实例化。我什至尝试了 Invalidate Cache / Restart 选项,因为许多其他问答都将其作为可能的解决方案......但无济于事。 :-( -
当您查看布局时,是否会弹出清除缓存的内容?
-
@WebUser,我想我确实找到了这个问题,由于某种原因,你可能是因为主题风格的变化尝试恢复由 android studio 生成的默认主题,它应该可以工作.