簡體   English   中英

在Samsung設備上檢查網絡狀態時出現NullPointerException

[英]NullPointerException when checking Network-State on Samsung devices

我已在Play商店中發布了我的應用,並且正在使用以下方法檢查網絡狀態:

public class TestInternetConnection {

    public boolean checkInternetConnection(Context context) {

         ConnectivityManager con_manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

         if (con_manager.getActiveNetworkInfo() != null && con_manager.getActiveNetworkInfo().isAvailable() && con_manager.getActiveNetworkInfo().isConnected()) {
            return true;
        } else {
            return false;
        }
    }
}

谷歌游戲控制台我看到,在調用的時候三星設備崩潰checkInternetConnection與方法Nullpointerexception 問題是什么? 在我的設備和其他設備上,它都可以正常工作。

堆棧跟蹤:

java.lang.NullPointerException: 
      at de.name.app.TestInternetConnection.checkInternetConnection (TestInternetConnection.java)
      at de.name.app.SubstitutionInfoFragment$2.run (SubstitutionInfoFragment.java)
      at java.lang.Thread.run (Thread.java:762)

您需要修改您的功能,因為這在所有設備上都可以正常工作。 只是在繼續之前添加對上下文的空檢查。

public static boolean checkInternetConnection(Context context) {
    // Add a null check before you proceed
    if (context == null) return false;

    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo info = cm.getActiveNetworkInfo();
    return info != null && info.isConnected();
}

Reaz Murshed的答案應該可以解決您眼前的問題,但是在這樣做之前,我認為您應該遍歷堆棧跟蹤,並找出應用程序將null上下文傳遞給checkInternetConnection 這就是該錯誤的真正來源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM