【问题标题】:Android Helper class -> null pointer exceptionAndroid Helper 类 -> 空指针异常
【发布时间】:2014-01-27 14:06:24
【问题描述】:

我想问一下:

我的 AppHelper 类中有以下方法可以检查互联网连接的可用性。

public boolean checkInternetConnection(Context ctx) {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    // test for connection
    if (cm.getActiveNetworkInfo() != null
            && cm.getActiveNetworkInfo().isAvailable()
            && cm.getActiveNetworkInfo().isConnected()) {
        return true;
    } else {
        Log.i(GlobalApplication.APP_LOG_NAMESPACE, "Internet Connection Not Present");
        return false;
    }
}

我正在尝试使用以下方法获取布尔值:

// check internet connection and availability
        Boolean isConnectionAvailable = appHelper.checkInternetConnection(getBaseContext());

但不幸的是,我总是得到空指针异常。是否与传递的应用程序上下文有关?我应该如何解决这个问题?

感谢您的任何建议。

【问题讨论】:

  • getBaseContext() 几乎总是使用错误的上下文。但是请务必从 logcat 发布完整的堆栈跟踪,并显示您初始化 appHelper 的位置。
  • 如前所述,也是标准问题:你的清单中有<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />吗?
  • (不能与上下文有关,因为您没有将传入的上下文用于任何事情。)
  • 你甚至没有说你在哪一行有空指针异常。这是你必须要看的第一件事。我想知道人们如何在不阅读日志或使用调试工具的情况下进行编程......
  • @Jiri 在粘贴时一定错过了这一点。我打赌应该是ctx.getSystemService

标签: java android nullpointerexception helper


【解决方案1】:

我打算在黑暗中刺一下,说 AppHelper 类是一个单独的 Activity,它永远不会以意图正确启动。

如果是这样,我会改为将 AppHelper 实现为服务而不是 Activity,因为“checkInternetConnection”方法更适合此类任务。

服务是否在自己的进程中运行,我想这取决于手头的特定问题。

【讨论】:

    猜你喜欢
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 2014-05-29
    相关资源
    最近更新 更多