解决方案 »

  1.   

    看看错误log是什么,就知道哪里错了。
      

  2.   

    你能把相应layout的XML文件贴出来么
      

  3.   

    以下是Layout的代码;<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@color/background"
        android:orientation="vertical" >    <com.example.colorpicker.ColorPickerView
            android:id="@+id/colorpicker4"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" /></LinearLayout>
      

  4.   

    我记得如果你把这个view放到布局里面 ,你需要有这个构造函数。
    public ColorPickerView(Context context, AttributeSet attributeSet)
      

  5.   

    我用public ColorPickerView(Context context)替代了;
      

  6.   

    以下是报错的日志,没看懂:
    09-26 04:26:48.720: E/AndroidRuntime(1524): FATAL EXCEPTION: main
    09-26 04:26:48.720: E/AndroidRuntime(1524): Process: com.example.colorpicker, PID: 1524
    09-26 04:26:48.720: E/AndroidRuntime(1524): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.colorpicker/com.example.colorpicker.ColorPickerActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class com.example.colorpicker.ColorPickerView
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2176)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at android.app.ActivityThread.access$700(ActivityThread.java:135)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at android.os.Handler.dispatchMessage(Handler.java:102)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at android.os.Looper.loop(Looper.java:137)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at android.app.ActivityThread.main(ActivityThread.java:4998)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at java.lang.reflect.Method.invokeNative(Native Method)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at java.lang.reflect.Method.invoke(Method.java:515)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at dalvik.system.NativeStart.main(Native Method)
    09-26 04:26:48.720: E/AndroidRuntime(1524): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class com.example.colorpicker.ColorPickerView
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at android.view.LayoutInflater.createView(LayoutInflater.java:603)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at android.app.Activity.setContentView(Activity.java:1928)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at com.example.colorpicker.ColorPickerActivity.onCreate(ColorPickerActivity.java:51)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at android.app.Activity.performCreate(Activity.java:5243)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  ... 11 more
    09-26 04:26:48.720: E/AndroidRuntime(1524): Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet]
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at java.lang.Class.getConstructorOrMethod(Class.java:472)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at java.lang.Class.getConstructor(Class.java:446)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  at android.view.LayoutInflater.createView(LayoutInflater.java:568)
    09-26 04:26:48.720: E/AndroidRuntime(1524):  ... 22 more
      

  7.   

    异常很明显是没有构造函数。
    public ColorPickerView(Context context, AttributeSet attributeSet)Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet]
      

  8.   

    确实是,需要怎么改?只是public ColorPickerView(Context context)改成public ColorPickerView(Context context, AttributeSet attributeSet)就可以了吗?
      

  9.   

    public ColorPickerView(Context context, AttributeSet attributeSet) {  
           this.ColorPickerView(context);//这样写
    }
      

  10.   

    刚试了下,这么写会报错,this内找不到ColorPickerView的对象;
      

  11.   

    public ColorPickerView(Context context, AttributeSet attributeSet) {  
          super(context,attributeSet);
           ColorPickerView(context);//...................................
    }ColorPickerView(context) 你不是说你写了这个构造函数了么。
      

  12.   

    是写了,代码见顶楼;
    在public ColorPickerView(Context context, AttributeSet attributeSet)内增加ColorPickerview(context);语句后,提示ColorPickerView方法没有定义,根据错误点击创建这个方法后,会自动创建以下方法:
    private void ColorPickerView(Context context) {
    // TODO Auto-generated method stub

    }