Android显示电池电量正在出错

时间:2015-01-03 16:41:06

标签: android

Hello每个人我都试图在textview中显示电池电量,但它给了我错误。 我的Logcat错误和代码如下所示。

logcat的

01-03 21:28:14.992: E/AndroidRuntime(9599): FATAL EXCEPTION: main
01-03 21:28:14.992: E/AndroidRuntime(9599): Process: com.Designproshop.solarchargerprank, PID: 9599
01-03 21:28:14.992: E/AndroidRuntime(9599): java.lang.RuntimeException: Error receiving broadcast Intent { act=android.intent.action.BATTERY_CHANGED flg=0x60000010 (has extras) } in com.Designproshop.solarchargerprank.MainActivity$1@41b021c0
01-03 21:28:14.992: E/AndroidRuntime(9599):     at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:782)
01-03 21:28:14.992: E/AndroidRuntime(9599):     at android.os.Handler.handleCallback(Handler.java:733)
01-03 21:28:14.992: E/AndroidRuntime(9599):     at android.os.Handler.dispatchMessage(Handler.java:95)
01-03 21:28:14.992: E/AndroidRuntime(9599):     at android.os.Looper.loop(Looper.java:146)
01-03 21:28:14.992: E/AndroidRuntime(9599):     at android.app.ActivityThread.main(ActivityThread.java:5511)
01-03 21:28:14.992: E/AndroidRuntime(9599):     at java.lang.reflect.Method.invokeNative(Native Method)
01-03 21:28:14.992: E/AndroidRuntime(9599):     at java.lang.reflect.Method.invoke(Method.java:515)
01-03 21:28:14.992: E/AndroidRuntime(9599):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
01-03 21:28:14.992: E/AndroidRuntime(9599):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
01-03 21:28:14.992: E/AndroidRuntime(9599):     at dalvik.system.NativeStart.main(Native Method)
01-03 21:28:14.992: E/AndroidRuntime(9599): Caused by: java.lang.NullPointerException
01-03 21:28:14.992: E/AndroidRuntime(9599):     at com.Designproshop.solarchargerprank.MainActivity$1.onReceive(MainActivity.java:28)
01-03 21:28:14.992: E/AndroidRuntime(9599):     at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:772)
01-03 21:28:14.992: E/AndroidRuntime(9599):     ... 9 more

MainActivity

 public class MainActivity extends ActionBarActivity {
   private TextView contentTxt;
   private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
    @Override
    public void onReceive(Context arg0, Intent intent) {
      // TODO Auto-generated method stub
      int level = intent.getIntExtra("level", 0);
      contentTxt.setText(Integer.toString(level)+ "%");
    }
  };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
     getActionBar().hide();
      setContentView(R.layout.fragment_main);
       new CountDownTimer(5000,1000){
        @Override
        public void onTick(long millisUntilFinished){} 
        @Override
        public void onFinish(){
          //set the new Content of your activity
          MainActivity.this.setContentView(R.layout.chargingactivity);
        }
        }.start();
        contentTxt = (TextView) this.findViewById(R.id.btrylevel);
        this.registerReceiver(this.mBatInfoReceiver, 
        new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

}}

我做错了什么?在此先感谢..

1 个答案:

答案 0 :(得分:0)

可能是你应该检查对象contentTxt不是null。在初始化contentTxt之前,您可能会遇到导致呼叫接收器的同步问题。 否则检查意图不为空。