java - Google map v2 未针对 NEXUS 7 平板电脑开放

标签 java android google-maps-api-2

我尝试在带有 NEXUS 7 google 和 android 版本 5.1.1 的平板电脑设备中安装我的 android -studio apk。该应用程序根本不加载我的地​​图,并且显示的消息是“应用程序已停止”。

我在 NEXUS 7 平板电脑中尝试了我的应用程序的旧版私有(private)版本,它成功了,唯一的区别是我不显示 toast 消息。 Toast 消息指示用户设备中 wi-fi 或移动设备的连接是否可用。请找到下面的代码:

private void setUpMap() {
   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
}

 // set position, title, snippet and icon for each marker
    mMap.addMarker(new MarkerOptions().position(new LatLng(X, Y)).title("NAME").snippet("SURNAME").icon(BitmapDescriptorFactory.fromResource(R.drawable.location_icon)));

.....
...
}  // END SETUPMAP

如果 conMan 不为空,则进行检查(wi-fi 或移动),否则不执行任何操作并继续在 map 上加载标记。对于 NEXUS 7,检查应进入 else,因为 conMan 为空,并且应继续加载标记。但仍然无法正常工作,该应用程序在 NEXUS 7 中崩溃了..您能建议我该怎么做吗?

    java.lang.RuntimeException: Unable to start activity      
ComponentInfo{project.name/project.name.MapsActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2122)
at android.app.ActivityThread.access$600(ActivityThread.java:140)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1228)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4895)
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:994)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at project.name.MapsActivity.setUpMap(MapsActivity.java:147)
at project.name.MapsActivity.setUpMapIfNeeded(MapsActivity.java:64)
at project.name.MapsActivity.onCreate(MapsActivity.java:43)
at android.app.Activity.performCreate(Activity.java:5163)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2061)
... 11 more

这是第 147 行:

private void setUpMap() {


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

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

最佳答案

Nexus 7 wifi 将在以下位置返回 null:

conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)

因为它是wifi且不支持移动数据, 所以你必须检查该行是否为空,然后获取它的状态。

ConnectivityManager conMan = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            if(conMan != null)
            {
                NetworkInfo inf = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

                if(inf != null) {
                    NetworkInfo.State mobile = inf.getState();
                }
            }

关于java - Google map v2 未针对 NEXUS 7 平板电脑开放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30299704/

相关文章:

java - 使用java代码将文件上传到SVN存储库

java - 为什么在Spring-Hibernate Configuration中同时配置dataSource和sessionFactory?

java - 传输不适用于在java中发送smtp电子邮件

java - 如何生成具有嵌套依赖项的 AAR

android - 带有 CollapsingToolbar 和 NestedScrollView 的谷歌地图

android - 找不到 com.android.tools.build :gradle:4. 4

android - 构建发布失败 Flutter

java - 单击时如何更改变量并将其传递给android中的另一个 Activity (有代码)?

android - 如何在 Android 中的 onMapReady() 之外添加 Google map 标记?

android Zoom-to-Fit 谷歌地图 v2 上的所有标记