Java 使用SeekBar处理NullPointerException

Java 使用SeekBar处理NullPointerException,java,android,nullpointerexception,seekbar,android-seekbar,Java,Android,Nullpointerexception,Seekbar,Android Seekbar,我有时用我的SeekBar接收到一个NullPointerException 我正在学习Android,但我无法找到正确的方法来修复这个错误 我将以下代码用于onStopTrackingTouchSeekBar: public void onStopTrackingTouch(SeekBar seekBar) { setScaledSize(seekBar.getProgress() / 100.f); } private void se

我有时用我的SeekBar接收到一个
NullPointerException

我正在学习Android,但我无法找到正确的方法来修复这个错误

我将以下代码用于
onStopTrackingTouch
SeekBar:

public void onStopTrackingTouch(SeekBar seekBar) {
                setScaledSize(seekBar.getProgress() / 100.f);
            }
private void setScaledSize(float scaledSize) {
        mSizeSeekBar.setProgress((int) (scaledSize * 100.0f));
        paintview.setDrawingScaledSize(scaledSize);
    }
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.example.shayari.cardmaker.PaintView.setDrawingScaledSize(float)' on a null object reference
                                                                           at com.example.shayari.cardmaker.NameArt.setScaledSize(NameArt.java:767)
                                                                           at com.example.shayari.cardmaker.NameArt.access$200(NameArt.java:78)
                                                                           at com.example.shayari.cardmaker.NameArt$19.onStopTrackingTouch(NameArt.java:708)
                                                                           at android.widget.SeekBar.onStopTrackingTouch(SeekBar.java:121)
                                                                           at android.widget.AbsSeekBar.onTouchEvent(AbsSeekBar.java:772)
                                                                           at android.view.View.dispatchTouchEvent(View.java:10063)
                                                                           at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2636)
和功能
setScaledSize
如下所示:

public void onStopTrackingTouch(SeekBar seekBar) {
                setScaledSize(seekBar.getProgress() / 100.f);
            }
private void setScaledSize(float scaledSize) {
        mSizeSeekBar.setProgress((int) (scaledSize * 100.0f));
        paintview.setDrawingScaledSize(scaledSize);
    }
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.example.shayari.cardmaker.PaintView.setDrawingScaledSize(float)' on a null object reference
                                                                           at com.example.shayari.cardmaker.NameArt.setScaledSize(NameArt.java:767)
                                                                           at com.example.shayari.cardmaker.NameArt.access$200(NameArt.java:78)
                                                                           at com.example.shayari.cardmaker.NameArt$19.onStopTrackingTouch(NameArt.java:708)
                                                                           at android.widget.SeekBar.onStopTrackingTouch(SeekBar.java:121)
                                                                           at android.widget.AbsSeekBar.onTouchEvent(AbsSeekBar.java:772)
                                                                           at android.view.View.dispatchTouchEvent(View.java:10063)
                                                                           at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2636)
我收到一个类似以下日志的错误:

public void onStopTrackingTouch(SeekBar seekBar) {
                setScaledSize(seekBar.getProgress() / 100.f);
            }
private void setScaledSize(float scaledSize) {
        mSizeSeekBar.setProgress((int) (scaledSize * 100.0f));
        paintview.setDrawingScaledSize(scaledSize);
    }
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.example.shayari.cardmaker.PaintView.setDrawingScaledSize(float)' on a null object reference
                                                                           at com.example.shayari.cardmaker.NameArt.setScaledSize(NameArt.java:767)
                                                                           at com.example.shayari.cardmaker.NameArt.access$200(NameArt.java:78)
                                                                           at com.example.shayari.cardmaker.NameArt$19.onStopTrackingTouch(NameArt.java:708)
                                                                           at android.widget.SeekBar.onStopTrackingTouch(SeekBar.java:121)
                                                                           at android.widget.AbsSeekBar.onTouchEvent(AbsSeekBar.java:772)
                                                                           at android.view.View.dispatchTouchEvent(View.java:10063)
                                                                           at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2636)
如何防止此错误?

更改以下内容:

public void onStopTrackingTouch(SeekBar seekBar) {
    setScaledSize(seekBar.getProgress() / 100.f);
}
通过将分母从100.f更改为100.0f,如下所示:

public void onStopTrackingTouch(SeekBar seekBar) {
    setScaledSize(seekBar.getProgress() / 100.0f);
}

在OnStopTrackingTouch函数中,尝试将分母从100.f更改为100。0f@gonephishing. 我认为它与你的解决方案配合得很好。谢谢,我已经把它作为答案贴了出来,这样我们就可以结束这个问题了。