android studio 预览报错,Android Studio 布局预览时 渲染错误

本文介绍了Android开发者在编程过程中遇到的布局问题,包括找不到特定类、阴影效果设置错误、主题不兼容以及图形预览不准确等错误。通过分析错误并提供相应的解决方案,如检查依赖、修改主题样式、修复布局属性等,帮助开发者解决这些问题。同时提醒开发者,预览可能与实际设备显示有差异,应确保在真实设备上进行测试。
摘要由CSDN通过智能技术生成

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

错误 Missing classes1

2

3

4

5

6

7Missing classes

The following classes could not be found:

- com.caiyi.youle.camera.ui.CameraFilterHorizontalScrollView (Fix Build Path, Edit XML, Create Class)

- com.caiyi.youle.camera.ui.FocusImageView (Fix Build Path, Edit XML, Create Class)

- com.caiyi.youle.camera.ui.VideoProgressView (Fix Build Path, Edit XML, Create Class)

Tip: Try to build the project. Tip: Try to refresh the layout

解决方法:去掉布局文件中,不存在的 viewModel 对象的引用。重新 build,就可以了。

error: Error: Dimension types not allowed (at ‘shadowDx’ with value ‘5dp’1

2

3

4

5

6

7

8

9

10

11

12

13

android:id="@+id/iv_filter"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:drawableTop="@drawable/ic_filter_selector"

android:gravity="center"

android:padding="8dp"

android:text="@string/filter"

android:textSize="@dimen/font_small_size"

android:shadowColor="@color/black"

android:shadowDx="5dp"

android:shadowDy="5dp"

android:shadowRadius="10dp"/>

改了只后,还出错,而且,XML中的值被改回去。仔细看错误发现,错误指向的XML不是原始文件:

D:\work\videoshare_android.git\app\build\intermediates\data-binding-layout-out\_360\debug\layout\activity_camera_record_video_layout.xml

错误 Using the design library requires using Theme.AppCompat or a descendant1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39Using the design library requires using Theme.AppCompat or a descendant

Failed to instantiate one or more classes

android.support.design.widget.CoordinatorLayout

android.support.design.widget.AppBarLayout

android.support.design.widget.FloatingActionButton

one or more layouts are missing the layout_width or layout_height attributes

java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library.

at android.support.design.widget.ThemeUtils.checkAppCompatTheme(ThemeUtils.java:36)

at android.support.design.widget.CoordinatorLayout.(CoordinatorLayout.java:205)

at android.support.design.widget.CoordinatorLayout.(CoordinatorLayout.java:199)

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:475)

at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:262)

at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:220)

at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:186)

at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:334)

at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:345)

at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:245)

at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)

at android.view.LayoutInflater.inflate(LayoutInflater.java:495)

at android.view.LayoutInflater.inflate(LayoutInflater.java:397)

at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:324)

at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429)

at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:368)

at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:567)

at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:549)

at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:863)

at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:549)

at com.android.tools.idea.rendering.RenderTask.lambda$inflate$1(RenderTask.java:680)

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)

配置清单

解决方法

删除 PlayerActivity 的 android:theme="@style/AppTheme.NoActionBar"

即使用 指定的样式 android:theme="@style/AppTheme"

或者给 @style/AppTheme.NoActionBar 增加父样式 Theme.AppCompat1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:roundIcon="@mipmap/ic_launcher_round"

android:supportsRtl="true"

android:theme="@style/AppTheme">

android:name=".PlayerActivity"

android:label="@string/title_activity_player"

android:theme="@style/AppTheme.NoActionBar">

@style/AppTheme.NoActionBar 和 @style/AppTheme 样式的代码1

2

3

4

5

6

7

8

9

10

11

12

@color/colorPrimary

@color/colorPrimaryDark

@color/colorAccent

false

true

gradle.build 指定的依赖1

2

3compile 'com.android.support:appcompat-v7:25.3.1'

compile 'com.android.support.constraint:constraint-layout:1.0.2'

compile 'com.android.support:design:25.3.1'

出错的 Activity 的定义1public class PlayerActivity extends AppCompatActivity

出错的布局1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33<?xml version="1.0" encoding="utf-8"?>

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context="work.wangxiang.lansodemo.PlayerActivity">

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:theme="@style/AppTheme.AppBarOverlay">

android:id="@+id/toolbar"

android:layout_width="match_parent"

android:layout_height="?attr/actionBarSize"

android:background="?attr/colorPrimary"

app:popupTheme="@style/AppTheme.PopupOverlay" />

android:id="@+id/fab"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="bottom|end"

android:layout_margin="@dimen/fab_margin"

app:srcCompat="@android:drawable/ic_dialog_email" />

把 activity 样式回复成原来的,重新打开 AS,又不出错了。

错误:Layout fidelity warning1

2

3

4

5

6

7

8

9

10

android:id="@+id/iv_filter"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:drawableTop="@drawable/ic_filter_selector"

android:gravity="center"

android:padding="8dp"

android:text="@string/filter"

android:textSize="@dimen/font_small_size"

android:shadowColor="@color/white" />

accurate

英 [ˈækjərət] 美 [ˈækjərɪt]

adj.精确的,准确的;正确无误的

fidelity

英 [fɪˈdeləti] 美 [fɪˈdɛlɪti,faɪ-]

n.保真度;逼真;忠诚,忠实;尽责

The graphics preview in the layout editor may not be accurate:

Paint.setShadowLayer is not supported

error-the-graphics-preview-in-the-layout-editor-may-not-be-accurate-paint-set

It means the preview doesn’t know how to implement setShadowLayer. This means the preview won’t look exactly like the result rendered on the device. Which is one of many reasons why you shouldn’t trust the preview app- always test your layouts on a physical device before assuming they’re done.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值