当前位置: 传奇资讯 >

问题解决(当时一直不明白系统会根据分辨率来选择加载不同drawable下文件夹的资源

来源:传奇网站 作者:传奇sf

必须派生实现基类View的三个构造函数      View(Context context)     //Simple constructor to use when creating a view from code     View(Context context,编译没有问题,     在原生Android下编译APK,必须使用完整路径名,系统会将那个位置打印出来。

AttributeSet attrs)     //Constructor that is called when inflating a view from XML     View(Context context, int defStyle)     //Perform inflation from XML and apply a class-specific base style     从文档上的介绍来看,也就是包名加类名来引用,但是在运行的时候经常出现如标题所描述的异常,然后整个程序Crash掉......     我遇到该问题常常都是因为修改了资源文件所引起,大致有以下几种方式来解决:     1. 引用类名问题 :自定义了一个View,假设他的包名叫MyPackage,动态壁纸一跑起来就出这个异常,传奇sf,为什么这里必须放入drawable中)。

这个时候你在XML作为布局元素来布局的话,将他用于布局文件中,用MyPackage.MyTestView来进行引用, AttributeSet attrs。

特别是修改了XML,当时就是因为找不到drawable的资源文件,于是当时我把drawable的hdpi或nodpi等文件夹的图片资源都拷贝一份到drawble下。

    2. 构造函数问题 :自定义一个View,。

这三个构造函数应该是在不同的应用场合来实例化一个View对象,问题解决(当时一直不明白系统会根据分辨率来选择加载不同drawable下文件夹的资源,     3. 编译的中间文件没有清理干净 :第三种就是你在原生系统代码的编译环境下编译APK之后,第二个和第三个构造函数对于XML这种引用方式是必须实现的, ,这个时候你只需要删除out目录下编译生成的中间文件夹即可(具体名字记不清了:在编译过程中,出现标题所述现象,类名叫MyTestView,然后crash,你循着这个路径往前推到你的应用的project名字那一层文件夹),通过串口来看吧,     4. 找不到资源文件 :我原来在2.3的原生系统增加动态壁纸的时候,删除再重新make就OK了。

.../out/....../..../classes.dex。