Java 未找到可提取资源,但存在

Java 未找到可提取资源,但存在,java,android,Java,Android,我正试图将光晕导入氰11。我的设备是xhdpi。 构建进行得很顺利,甚至可以启动,但使用此日志会导致systemui崩溃-> E/AndroidRuntime( 1875): FATAL EXCEPTION: main E/AndroidRuntime( 1875): Process: com.android.systemui, PID: 1875 E/AndroidRuntime( 1875): java.lang.NullPointerException E/AndroidRuntime(

我正试图将光晕导入氰11。我的设备是xhdpi。 构建进行得很顺利,甚至可以启动,但使用此日志会导致systemui崩溃->

E/AndroidRuntime( 1875): FATAL EXCEPTION: main
E/AndroidRuntime( 1875): Process: com.android.systemui, PID: 1875
E/AndroidRuntime( 1875): java.lang.NullPointerException
E/AndroidRuntime( 1875):    at com.android.systemui.statusbar.BaseStatusBar.updateHalo(BaseStatusBar.java:472)
E/AndroidRuntime( 1875):    at com.android.systemui.statusbar.BaseStatusBar.start(BaseStatusBar.java:448)
E/AndroidRuntime( 1875):    at com.android.systemui.statusbar.phone.PhoneStatusBar.start(PhoneStatusBar.java:562)
E/AndroidRuntime( 1875):    at com.android.systemui.statusbar.SystemBars.createStatusBarFromConfig(SystemBars.java:106)
E/AndroidRuntime( 1875):    at com.android.systemui.statusbar.SystemBars.onNoService(SystemBars.java:58)
E/AndroidRuntime( 1875):    at com.android.systemui.statusbar.ServiceMonitor.startService(ServiceMonitor.java:228)
E/AndroidRuntime( 1875):    at com.android.systemui.statusbar.ServiceMonitor.access$000(ServiceMonitor.java:49)
E/AndroidRuntime( 1875):    at com.android.systemui.statusbar.ServiceMonitor$1.handleMessage(ServiceMonitor.java:73)
E/AndroidRuntime( 1875):    at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime( 1875):    at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime( 1875):    at android.app.ActivityThread.main(ActivityThread.java:5153)
E/AndroidRuntime( 1875):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 1875):    at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime( 1875):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
E/AndroidRuntime( 1875):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
E/AndroidRuntime( 1875):    at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager(  662): Process com.android.systemui has crashed too many times: killing!
在文件“BaseStatusBar.java”中,行号472表示这部分代码:

protected void updateHalo() {
    mHaloActive = Settings.System.getInt(mContext.getContentResolver(),
            Settings.System.HALO_ACTIVE, 0) == 1;

  //THE LINE BELOW IS LINE 472
    mHaloButton.setImageResource(mHaloActive ? R.drawable.ic_notify_halo_pressed : R.drawable.ic_notify_halo_normal);

    if (mHaloActive) {
        if (mHalo == null) {
            LayoutInflater inflater = (LayoutInflater) mContext
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            mHalo = (Halo) inflater.inflate(R.layout.halo_trigger, null);
            mHalo.setLayerType(View.LAYER_TYPE_HARDWARE, null);
            WindowManager.LayoutParams params = mHalo.getWMParams();
            mWindowManager.addView(mHalo, params);
            mHalo.setStatusBar(this);
        }
    } else {
        if (mHalo != null) {
            mHalo.cleanUp();
            mWindowManager.removeView(mHalo);
            mHalo = null;
        }
    }
}
简单地说,我认为资源(即图标)“ic_notify_halo_pressed”和“ic_notify_halo_normal”应该出现在可绘图的xhdpi文件夹中,对吗?是的,它们确实存在。但它仍然给出了错误

此外,ic_notify_halo.xml(位于可绘制文件夹内)具有以下内容->

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
        android:drawable="@drawable/ic_notify_halo_pressed" />
    <item android:drawable="@drawable/ic_notify_halo_normal" />
</selector>

但我通过添加导入行->
import android.content.res.Resources;
(这只是一个猜测,但编译器没有给我任何错误)。我希望这与问题无关。

mHaloActive为空?请设置断点并检查是否为noob(仍在学习,最近开始),但我该怎么做呢?我确实知道什么是断点,并且在java(在netbeans)和C中使用过断点,但我在这里如何使用它?你初始化了mHaloButton吗?哈哈,我想我没有。我会试试。不知道我是如何一直在看可绘制的资源,而从不关心按钮本身的!谢谢你使用AndroidStudio,这很有帮助
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java:1270: cannot find symbol
symbol  : class Resources
location: class com.android.systemui.statusbar.BaseStatusBar
        Resources res = mContext.getResources();
        ^