今天自定義一個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
}
這樣就可以正常運行了。