简体   繁体   English

Android崩溃打开一个片段

[英]Android crash opening a fragment

A user told me that he can't open a fragment in my application because he get a crash. 一位用户告诉我,由于崩溃,他无法在我的应用程序中打开片段。 I have the logcat: 我有logcat:

java.lang.NullPointerException
at com.dd.androreboot.devicecontrolfragment.onCreateView(devicecontrolfragment.java:162)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:829)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1035)
at android.app.BackStackRecord.run(BackStackRecord.java:635)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1399)
at android.app.FragmentManagerImpl$1.run(FragmentManager.java:426)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4921)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
at dalvik.system.NativeStart.main(Native Method)

at line 162 i have this code: 在第162行,我有以下代码:

ConnectivityManager connManager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo mobile = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
        datatoggle = (ToggleButton)v.findViewById(R.id.datatoggle); 
        datatoggle.setChecked(mobile.isConnectedOrConnecting()); //line 162

This part of code needs to check if the 3g is connected and if it is, the toggle button state become true. 这部分代码需要检查3g是否已连接,如果已连接,则切换按钮的状态为true。 It works in in every device i tryied but not in this one: Galaxy Note 10.1 (p4notewifi). 它适用于我尝试过的所有设备,但不适用于此设备:Galaxy Note 10.1(p4notewifi)。 Any helps? 有帮助吗?

try this: 尝试这个:

ConnectivityManager connManager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo mobile = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    datatoggle = (ToggleButton)v.findViewById(R.id.datatoggle); 


   if(mobile != null) {
    datatoggle.setChecked(mobile.isConnectedOrConnecting()); //line 162
   } else {
      datatoggle.setChecked(false); //line 162
   }

getNetworkInfo() can return null . getNetworkInfo()可以返回null Check for non-null before calling a method on it. 在调用非null之前,先检查非null。

Specifically , 具体来说

Returns 退货

a NetworkInfo object for the requested network type or null if the type is not supported by the device. 所请求的网络类型的NetworkInfo对象;如果设备不支持该类型,则为null

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM