java - 无法在 android 5.1.1 中加载带有标记的 map

标签 java android google-maps-api-2

我开发了一个 Android 应用程序,其中有一个 map ,上面显示标记和一些信息(需要 android 4.0.3 及更高版本)。

在发布之前,我在大多数 Android 操作系统(从 4.0.3 到 5)中测试了我的应用程序,没有遇到任何问题。今天,我尝试在带有 NEXUS 7 google 和 Android 版本 5.1.1 的平板电脑设备中安装我发布的应用程序(来自 Play 商店)。该应用程序根本不加载我的地​​图,消息显示为“应用程序已停止”。

我在 NEXUS 7 平板电脑中尝试了我的应用程序的较旧私有(private)版本(在 Debug模式下),并且成功,唯一的区别是我不显示 toast 消息。 Toast 消息指示用户设备中的连接是否可用。加载 map 时,此消息会显示在用户的屏幕上,以通知用户是否已连接到互联网。请找到下面的代码:

ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

    //mobile
    NetworkInfo.State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();

    //wifi
    NetworkInfo.State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();


    if (mobile == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTED)
    {
        Toast.makeText(getApplicationContext(),"Connection available",Toast.LENGTH_LONG).show();
    }
    else
    {
        Toast.makeText(getApplicationContext(),"Connection not available",Toast.LENGTH_LONG).show();
    }

我遇到的问题真的与 toast 有关吗? NEXUS 7 设备是否阻止连接管理器从设备读取 wi-fi 或 3G 状态的任何尝试?那么问题是否与设备上应用的安全配置有关?您能帮我解决这个问题吗?

更新代码:

    ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

 if (conMan != null) {
//mobile
    NetworkInfo.State mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();

//wifi
NetworkInfo.State wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();


if (mobile == NetworkInfo.State.CONNECTED || wifi == NetworkInfo.State.CONNECTED)
{
    Toast.makeText(getApplicationContext(),"Connection available",Toast.LENGTH_LONG).show();
}
else
{
    Toast.makeText(getApplicationContext(),"Connection not available",Toast.LENGTH_LONG).show();
}
} // end if
else 
{  //do nothing
}

最佳答案

conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)添加空检查和conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI) , getNetworkInfo如果设备不支持连接类型,则返回 null。

来自 API 文档

a NetworkInfo object for the requested network type or null if the type is not supported by the device.

我猜测 Nexus 7 不支持 SIM 卡,因为它可能会抛出 NullPointerException。

关于java - 无法在 android 5.1.1 中加载带有标记的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30213627/

相关文章:

javascript - 使用 Google Maps JavaScript API 创建具有多个边界的食品场所/餐厅自动完成字段

java - SWT 浏览器 - Swing 集成 - Mac - JDK 1.7

java - XML 保留前导空格,但不保留尾随空格

java - Android,覆盖ListView中的项目 View 以显示与实际值略有不同

android - 警报对话框选项之间的分隔符

android - Google Maps Android 上的标记动画无法正常工作

java - 如果没有自定义序列化程序,是否可以对这个字符串进行 Jackson 序列化?

java - 创建另一个 map 的 map

android - 在android中绘制单点触摸运动路径

java - 无法再在应用程序中看到谷歌地图