标题翻译
AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method on a null object reference
问题
我试图在我的ROM的快速设置面板中添加一个显示数据使用情况的方法,来源于:https://github.com/Extended-UI/android_frameworks_base/commit/ca5707055fc7ba516ab93fd128291264b0332825
但是系统界面(SystemUI)一直崩溃。以下是日志:
03-16 20:04:37.311 2297 2297 E AndroidRuntime: FATAL EXCEPTION: main
03-16 20:04:37.311 2297 2297 E AndroidRuntime: Process: com.android.systemui, PID: 2297
03-16 20:04:37.311 2297 2297 E AndroidRuntime: java.lang.NullPointerException: 尝试调用空对象引用的虚拟方法 'float com.android.systemui.statusbar.phone.PanelView.getExpandedFraction()'
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at com.android.systemui.statusbar.phone.StatusBar.updateBlurVisibility(StatusBar.java:1127)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at com.android.systemui.statusbar.phone.StatusBar.updateIsKeyguard(StatusBar.java:3308)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at com.android.systemui.statusbar.phone.StatusBar.access$1600(StatusBar.java:264)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at com.android.systemui.statusbar.phone.StatusBar$15.onStartedWakingUp(StatusBar.java:4008)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at com.android.systemui.keyguard.-$$Lambda$TPhVA13qrDBGFKbgQpRNBPBvAqI.accept(Unknown Source:2)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at com.android.systemui.keyguard.Lifecycle.dispatch(Lifecycle.java:39)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at com.android.systemui.keyguard.WakefulnessLifecycle.dispatchStartedWakingUp(WakefulnessLifecycle.java:68)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at com.android.systemui.keyguard.KeyguardLifecyclesDispatcher$1.handleMessage(KeyguardLifecyclesDispatcher.java:67)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7355)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
我使用的代码如下:
public void updateBlurVisibility() {
int QSBlurAlpha = Math.round(255.0f * mStaticNotificationPanel.getExpandedFraction());
if (QSBlurAlpha > 0 && !dataupdated && !mIsKeyguard) {
DataUsageView.updateUsage();
dataupdated = true;
}
if (QSBlurAlpha > 0 && !blurperformed && !mIsKeyguard && isQSBlurEnabled()) {
Bitmap bittemp = ImageUtilities.blurImage(mContext, ImageUtilities.screenshotSurface(mContext));
Drawable blurbackground = new BitmapDrawable(mContext.getResources(), bittemp);
blurperformed = true;
mQSBlurView.setBackgroundDrawable(blurbackground);
} else if (QSBlurAlpha == 0 || mState == StatusBarState.KEYGUARD) {
blurperformed = false;
dataupdated = false;
mQSBlurView.setBackgroundColor(Color.TRANSPARENT);
}
mQSBlurView.setAlpha(QSBlurAlpha);
mQSBlurView.getBackground().setAlpha(QSBlurAlpha);
}
我可能如何纠正这个问题呢?
英文翻译
So i was trying to add a method that will display data usage in the QS panel of my ROM from: https://github.com/Extended-UI/android_frameworks_base/commit/ca5707055fc7ba516ab93fd128291264b0332825
But the systemUI kept crashing. Here is the log:
03-16 20:04:37.311 2297 2297 E AndroidRuntime: FATAL EXCEPTION: main
03-16 20:04:37.311 2297 2297 E AndroidRuntime: Process: com.android.systemui, PID: 2297
03-16 20:04:37.311 2297 2297 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'float com.android.systemui.statusbar.phone.PanelView.getExpandedFraction()' on a null object reference
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at com.android.systemui.statusbar.phone.StatusBar.updateBlurVisibility(StatusBar.java:1127)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at com.android.systemui.statusbar.phone.StatusBar.updateIsKeyguard(StatusBar.java:3308)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at com.android.systemui.statusbar.phone.StatusBar.access$1600(StatusBar.java:264)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at com.android.systemui.statusbar.phone.StatusBar$15.onStartedWakingUp(StatusBar.java:4008)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at com.android.systemui.keyguard.-$$Lambda$TPhVA13qrDBGFKbgQpRNBPBvAqI.accept(Unknown Source:2)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at com.android.systemui.keyguard.Lifecycle.dispatch(Lifecycle.java:39)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at com.android.systemui.keyguard.WakefulnessLifecycle.dispatchStartedWakingUp(WakefulnessLifecycle.java:68)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at com.android.systemui.keyguard.KeyguardLifecyclesDispatcher$1.handleMessage(KeyguardLifecyclesDispatcher.java:67)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7355)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
03-16 20:04:37.311 2297 2297 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
The code that i used is here
public void updateBlurVisibility() {
int QSBlurAlpha = Math.round(255.0f * mStaticNotificationPanel.getExpandedFraction());
if (QSBlurAlpha > 0 && !dataupdated && !mIsKeyguard) {
DataUsageView.updateUsage();
dataupdated = true;
}
if (QSBlurAlpha > 0 && !blurperformed && !mIsKeyguard && isQSBlurEnabled()) {
Bitmap bittemp = ImageUtilities.blurImage(mContext, ImageUtilities.screenshotSurface(mContext));
Drawable blurbackground = new BitmapDrawable(mContext.getResources(), bittemp);
blurperformed = true;
mQSBlurView.setBackgroundDrawable(blurbackground);
} else if (QSBlurAlpha == 0 || mState == StatusBarState.KEYGUARD) {
blurperformed = false;
dataupdated = false;
mQSBlurView.setBackgroundColor(Color.TRANSPARENT);
}
mQSBlurView.setAlpha(QSBlurAlpha);
mQSBlurView.getBackground().setAlpha(QSBlurAlpha);
}
What i can possibly do to correct it?
专注分享java语言的经验与见解,让所有开发者获益!
评论