2024年1月1日发(作者:)

加载widget出错解决方法在加载widget时出现错误:

D/AppWidgetHostView( 122): remoteViews ==

Views@43e1a820

W/ResourceType( 122): Failure getting entry for 0x7f020001 (t=1 e=1) in

package 0: 0xffffffb5

W/AppWidgetHostView( 122): updateAppWidget couldn't find any view, using

error view

W/AppWidgetHostView( 122): eException: Binary XML file

line #8: Error inflating class iew

W/AppWidgetHostView( 122): at

View(:513)

W/AppWidgetHostView( 122): at

teView(:56)

W/AppWidgetHostView( 122): at

ViewFromTag(:563)

W/AppWidgetHostView( 122): at

te(:618)

W/AppWidgetHostView( 122): at

e(:407)

W/AppWidgetHostView( 122): at

e(:320)

W/AppWidgetHostView( 122): at

(:930)

W/AppWidgetHostView( 122): at

AppWidget(:221)

W/AppWidgetHostView( 122): at

AppWidget(:155)

W/AppWidgetHostView( 122): at

View(:218)

W/AppWidgetHostView( 122): at

teAddAppWidget(:911)

W/AppWidgetHostView( 122): at

vityResult(:542)

W/AppWidgetHostView( 122): at

Widget(:1188)

W/AppWidgetHostView( 122): at

vityResult(:539)

W/AppWidgetHostView( 122): at

chActivityResult(:3890)

W/AppWidgetHostView( 122): at

rResults(:3511)

W/AppWidgetHostView( 122): at

SendResult(:3557)

W/AppWidgetHostView( 122): at

$2800(:125)

W/AppWidgetHostView( 122): at

tyThread$Message(:2063)

W/AppWidgetHostView( 122): at

chMessage(:99)

W/AppWidgetHostView( 122): at (:123)

W/AppWidgetHostView( 122): at

(:4627)

W/AppWidgetHostView( 122): at

Native(Native Method)

W/AppWidgetHostView( 122): at

(:521)

W/AppWidgetHostView( 122): at

Init$(:868)

W/AppWidgetHostView( 122): at

(:626)

W/AppWidgetHostView( 122): at (Native

Method)

W/AppWidgetHostView( 122): Caused by:

tionTargetException

W/AppWidgetHostView( 122): at

iew.(:108)

W/AppWidgetHostView( 122): at

uctNative(Native Method)

W/AppWidgetHostView( 122): at

tance(:446)

W/AppWidgetHostView( 122): at

View(:500)

W/AppWidgetHostView( 122): ... 26 more

W/AppWidgetHostView( 122): Caused by:

ces$NotFoundException: Resource is not a

Drawable (color or path): TypedValue{t=0x1/d=0x7f020001 a=-1

r=0x7f020001}

W/AppWidgetHostView( 122): at

awable(:1681)

W/AppWidgetHostView( 122): at

wable(:601)

W/AppWidgetHostView( 122): at

iew.(:118)

W/AppWidgetHostView( 122): ... 30 more

W/InputManagerService( 58): Window already focused, ignoring focus gain

of: MethodClient$Stub$Proxy@44044528

经过查找原因是屏幕像素的问题,HVGA屏density=160;QVGA屏density=120;WVGA屏=240;WQVGA屏density=120

density值表示每英寸有多少个显示点,与分辨率是两个概念。

不同density下 屏幕分辨率信息,以480dip*800dip的

WVGA(density=240)为例

density=120时 屏幕实际分辨率为240px*400px

(两个点对应一个分辨率)

状态栏和标题栏高各19px或者25dip

横屏是屏幕宽度400px

或者800dip,工作区域高度211px或者480dip

竖屏时屏幕宽度240px或者480dip,工作区域高度381px或者775dip

density=160时 屏幕实际分辨率为320px*533px

(3个点对应两个分辨率)

状态栏和标题栏高个25px或者25dip

横屏是屏幕宽度533px

或者800dip,工作区域高度295px或者480dip

竖屏时屏幕宽度320px或者480dip,工作区域高度508px或者775dip

density=240时 屏幕实际分辨率为480px*800px

(一个点对于一个分辨率)

状态栏和标题栏高个38px或者25dip

横屏是屏幕宽度800px

或者800dip,工作区域高度442px或者480dip

竖屏时屏幕宽度480px或者480dip,工作区域高度762px或者775dip

apk的 资源包中,当屏幕density=240时使用hdpi

标签的资源

当屏幕density=160时,使用mdpi标签的资源

当屏幕density=120时,使用ldpi标签的资源。

不加任何标签的资源是各种分辨率情况下共用的。

布局时尽量使用单位dip,少使用px

在java的资源文件res里有drawable drawable-hdpi drawable-ldpi

和drawable-mdpi四个目录,在drawable-hdpi drawable-ldpi和drawable-mdpr这三个目录分别对应这个三个不同的屏幕分辨率,

当屏幕的分辨率是这三个其中之一时,在加载图片是会去对应的目录去找图片,如果没有找到就会报错,drawable-hdpi drawable-ldpi和drawable-mdpr这三个目录对应的分辨率分别是480X800、240X400和

320X533

drawable这个目录不能忽略,你可以把所有的图片都放到这个目录下,这个目录下不分屏幕的分辨率(及不管屏幕的分辨率是多少,系统都会先去这个目录去找,找不到了在会去相应的分辨率的目录下去找)