今天自定义一个View,报这个错。如下所示
Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class
01-01 00:01:56.919: E/AndroidRuntime(2162): at android.view.LayoutInflater.createView(LayoutInflater.java:596)
01-01 00:01:56.919: E/AndroidRuntime(2162): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
01-01 00:01:56.919: E/AndroidRuntime(2162): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
01-01 00:01:56.919: E/AndroidRuntime(2162): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
01-01 00:01:56.919: E/AndroidRuntime(2162): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
01-01 00:01:56.919: E/AndroidRuntime(2162): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
01-01 00:01:56.919: E/AndroidRuntime(2162): at org.ila.dvd.VideoFloatingService.createFloatFadeView(VideoFloatingService.java:136)
01-01 00:01:56.919: E/AndroidRuntime(2162): at org.ila.dvd.VideoFloatingService.onStartCommand(VideoFloatingService.java:121)
01-01 00:01:56.919: E/AndroidRuntime(2162): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2490)
01-01 00:01:56.919: E/AndroidRuntime(2162): ... 10 more
01-01 00:01:56.919: E/AndroidRuntime(2162): Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet]
01-01 00:01:56.919: E/AndroidRuntime(2162): at java.lang.Class.getConstructorOrMethod(Class.java:460)
01-01 00:01:56.919: E/AndroidRuntime(2162): at java.lang.Class.getConstructor(Class.java:431)
01-01 00:01:56.919: E/AndroidRuntime(2162): at android.view.LayoutInflater.createView(LayoutInflater.java:561)
01-01 00:01:56.919: E/AndroidRuntime(2162): ... 18 more
然后研究了半天,最终找到解决办法。就是在自定义的View中的构造方法中一定要有AttributeSet这个参数,如下所示。
public FadeDragView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
这样就可以正常运行了。