插入应用程序时出现 NullPointerException:布局_行为 [重复]
Posted
技术标签:
【中文标题】插入应用程序时出现 NullPointerException:布局_行为 [重复]【英文标题】:NullPointerException when insert app: layout _ behavior [duplicate] 【发布时间】:2016-01-05 20:27:24 【问题描述】:我正在 android Studio 中开发一个应用程序。 当我创建一个新的空白活动时,默认情况下 content_main.xml 中有这一行
app:layout_behavior="@string/appbar_scrolling_view_behavior"
这一行破坏了我的布局预览。 从 1.2 更新到 1.4 后发生 在设备或模拟器上运行应用程序就可以了。
我会在事件日志中得到这个 NullPointerException
null
java.lang.NullPointerException
at com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel.hasAlphaChannel(AndroidDesignerEditorPanel.java:1386)
at com.android.tools.idea.rendering.multi.RenderPreview.createErrorThumbnail(RenderPreview.java:769)
at com.android.tools.idea.rendering.multi.RenderPreview.tryRenderSync(RenderPreview.java:606)
at com.android.tools.idea.rendering.multi.RenderPreview.renderSync(RenderPreview.java:531)
at com.android.tools.idea.rendering.multi.RenderPreviewManager$3.run(RenderPreviewManager.java:1382)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
at com.intellij.util.Alarm$Request$1.run(Alarm.java:351)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at com.intellij.util.concurrency.QueueProcessor$RunnableConsumer.consume(QueueProcessor.java:298)
at com.intellij.util.concurrency.QueueProcessor$RunnableConsumer.consume(QueueProcessor.java:295)
at com.intellij.util.concurrency.QueueProcessor$2$1.run(QueueProcessor.java:110)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
at com.intellij.util.concurrency.QueueProcessor$2.consume(QueueProcessor.java:107)
at com.intellij.util.concurrency.QueueProcessor$2.consume(QueueProcessor.java:104)
at com.intellij.util.concurrency.QueueProcessor$3$1.run(QueueProcessor.java:215)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
at com.intellij.util.concurrency.QueueProcessor$3.run(QueueProcessor.java:212)
at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:400)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
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)
at org.jetbrains.ide.PooledThreadExecutor$1$1.run(PooledThreadExecutor.java:56)
我还在预览中看到以下错误消息,在 API 19 上,而不是在 API 22 上。
Rendering Problems The graphics preview in the layout editor may not be accurate:
- PorterDuff Color Filters are not supported.
我清理并重建了项目,还重新安装了 SDK
这行代码对xml文件有什么影响?
【问题讨论】:
@Marian 关于这个主题有任何更新吗?我今天将 Android Studio 更新到 1.4 并创建了一个新项目。我目前只创建布局并且我遇到了同样的问题:/我相信它可能与我没有呈现的布局有关,但我除了RelativeLayout、ViewPager和一个按钮之外什么都没有。跨度> 【参考方案1】:解决方案太简单了! 那个小虫子导致了我的异常。 工具:showIn="@layout/lay_main" 它显然应该指 工具:showIn="@layout/lay_main.xml" 这个问题给我带来了太多的时间,而我从中学到的结果 几乎为零。 不知道是我导致该错误还是 Android Studio
更新: 我刚刚创建了一个新项目,我必须一直使用“xml”才能使渲染工作。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_
android:layout_ android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/activity_test" tools:context="com.mathlife.mathlife.calculator.Test">
</RelativeLayout>
这只是一个新项目。 如果我将 xml 广告到工具:showIn,渲染效果很好! 不知道是什么原因造成的。
【讨论】:
你应该接受它作为正确答案然后:)【参考方案2】:休息并返回后,我设法解决了这个问题,尽管我知道这可能不是你的解决方案。
就我而言,正如我之前在评论中所说,我的布局中的组件之一是 ViewPager
元素。但是,我是这样声明的:
<ViewPager
android:layout_
android:layout_/>
我是这样声明的,因为我使用的是 API +14,所以我没有想到我做错了什么(因为我没有看到需要使用支持库)。 Android Studio 也没有警告我。多次重启后才告诉我ViewPager
无法识别,所以我决定按预期在布局中声明:
<android.support.v4.view.ViewPager
android:layout_
android:layout_/>
进行此更改并按下Refresh
按钮后,它按预期呈现了布局,并且在项目中未发现其他错误。
希望它可能会有所帮助。如果不是为了你,为了另一个可能偶然发现这个话题的人。
【讨论】:
为此干杯。但是我对我的问题的解决方案要简单得多。不知道是我做的还是 Android Studio 做的以上是关于插入应用程序时出现 NullPointerException:布局_行为 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
插入应用程序时出现 NullPointerException:布局_行为 [重复]
数据库插入时出现 NullPointerException [重复]
MS-SQL 2012 中的 C# Dapper 加载程序在插入时出现死锁
当 Spring Batch 插入 BATCH_JOB_EXECUTION 时出现 BadSqlGrammarException