Java 调用显示对话框的方法时发生空指针异常

Java 调用显示对话框的方法时发生空指针异常,java,android,click,Java,Android,Click,我使用AmbilwarnaColorDialog来选择颜色。所以我加入了Ambilwarna库。我想通过单击图像打开“颜色”对话框。所以我只调用下面的方法。但它显示了空指针异常。有人能帮我吗? 我的代码: int color; void openDialog(boolean supportsAlpha) { AmbilWarnaDialog dialog = new AmbilWarnaDialog(MainActivity.this, color, supp

我使用AmbilwarnaColorDialog来选择颜色。所以我加入了Ambilwarna库。我想通过单击图像打开“颜色”对话框。所以我只调用下面的方法。但它显示了空指针异常。有人能帮我吗? 我的代码:

int color;

 void openDialog(boolean supportsAlpha) {
    AmbilWarnaDialog dialog = new AmbilWarnaDialog(MainActivity.this,
            color, supportsAlpha,
            new AmbilWarnaDialog.OnAmbilWarnaListener() {

                @Override
                public void onOk(AmbilWarnaDialog dialog, int color) {
                    Toast.makeText(getApplicationContext(), "ok",
                            Toast.LENGTH_SHORT).show();
                    MainActivity.this.color = color;
                }

                @Override
                public void onCancel(AmbilWarnaDialog dialog) {
                    Toast.makeText(getApplicationContext(), "cancel",
                            Toast.LENGTH_SHORT).show();
                }
            });
    dialog.show();
}
我的意思是:

import yuku.ambilwarna.AmbilWarnaDialog;
LogCat的表现如下:

01-20 10:54:56.260: E/AndroidRuntime(14407): FATAL EXCEPTION: main
01-20 10:54:56.260: E/AndroidRuntime(14407): java.lang.NullPointerException
01-20 10:54:56.260: E/AndroidRuntime(14407):    at  yuku.ambilwarna.AmbilWarnaDialog.<init>(AmbilWarnaDialog.java:84)
 01-20 10:54:56.260: E/AndroidRuntime(14407):   at com.example.demofordrawline.MainActivity.openDialog(MainActivity.java:178)
01-20 10:54:56.260: E/AndroidRuntime(14407):    at com.example.demofordrawline.MainActivity.onClick(MainActivity.java:251)
01-20 10:54:56.260: E/AndroidRuntime(14407):    at android.view.View.performClick(View.java:4212)
01-20 10:54:56.260: E/AndroidRuntime(14407):    at android.view.View$PerformClick.run(View.java:17476)
01-20 10:54:56.260: E/AndroidRuntime(14407):    at android.os.Handler.handleCallback(Handler.java:800)
01-20 10:54:56.260: E/AndroidRuntime(14407):    at android.os.Handler.dispatchMessage(Handler.java:100)
01-20 10:54:56.260: E/AndroidRuntime(14407):    at android.os.Looper.loop(Looper.java:194)
01-20 10:54:56.260: E/AndroidRuntime(14407):    at android.app.ActivityThread.main(ActivityThread.java:5371)
01-20 10:54:56.260: E/AndroidRuntime(14407):    at java.lang.reflect.Method.invokeNative(Native Method)
01-20 10:54:56.260: E/AndroidRuntime(14407):    at java.lang.reflect.Method.invoke(Method.java:525)
01-20 10:54:56.260: E/AndroidRuntime(14407):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
01-20 10:54:56.260: E/AndroidRuntime(14407):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
01-20 10:54:56.260: E/AndroidRuntime(14407):    at dalvik.system.NativeStart.main(Native Method)
试试这个代码

        package yuku.ambilwarna.demo;

    import yuku.ambilwarna.AmbilWarnaDialog;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Toast;

    public class AmbilWarnaDemoActivity extends Activity {
        int color = 0xffffff00;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            final Button button = (Button) findViewById(R.id.button1);

            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    openDialog();
                }
            });
        }

        void openDialog() {
            AmbilWarnaDialog dialog = new AmbilWarnaDialog(
                    AmbilWarnaDemoActivity.this, color,
                    new AmbilWarnaDialog.OnAmbilWarnaListener() {
                        @Override
                        public void onOk(AmbilWarnaDialog dialog, int color) {

                            AmbilWarnaDemoActivity.this.color = color;
                            Toast.makeText(getApplicationContext(),
                                    "Color is " + color, Toast.LENGTH_SHORT).show();
                        }

                        @Override
                        public void onCancel(AmbilWarnaDialog dialog) {
                            Toast.makeText(getApplicationContext(), "cancel",
                                    Toast.LENGTH_SHORT).show();
                        }
                    });
            dialog.show();
        }
    }

@VaishaliVaghasiya在哪一行出现错误?您的颜色变量是全局声明的还是在类的内部方法中声明的??您是否正在使用该第三方库??完整文档:是,我全局声明了颜色变量。@VaishaliVaghasiya能否将您的项目演示与库一起发送给我?@VaishaliVaghasiya是否已正确检查您的第三方库项目是否以绿色标记导入,并且在工作区中也是如此?请清理您的项目,然后运行