Android谷歌地图不断崩溃

Posted

技术标签:

【中文标题】Android谷歌地图不断崩溃【英文标题】:Android google map keep crashing 【发布时间】:2017-10-28 14:25:08 【问题描述】:

我在 companydetails.java 中有这段代码,每次它崩溃时

 case R.id.textView:
           if (!((String) this.companyMap.get("latitude")).equals("") || !
 ((String) this.companyMap.get("longitude")).equals("")) 
               intent = new Intent(this, MapActivity.class);
               intent.putExtra("latitude", Double.parseDouble((String) 
   this.companyMap.get("latitude")));
               intent.putExtra("longitude", Double.parseDouble((String) 
           this.companyMap.get("longitude")));
               intent.putExtra("company", (String) 
                this.companyMap.get("company"));
               break;
           

我得到了这些错误

设备日志

00:43:49 E androidRuntime : FATAL EXCEPTION: main
00:43:49 E AndroidRuntime : Process: com.mra.tnow, PID: 9186
00:43:49 E AndroidRuntime : java.lang.NumberFormatException: For input string: "28°23′50"
00:43:49 E AndroidRuntime : at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1306)
00:43:49 E AndroidRuntime : at java.lang.Double.parseDouble(Double.java:547)
00:43:49 E AndroidRuntime : at com.marwan.tabuknow.CompanyDetails.onClick(CompanyDetails.java:368)
00:43:49 E AndroidRuntime : at android.view.View.performClick(View.java:5637)
00:43:49 E AndroidRuntime : at android.view.View$PerformClick.run(View.java:22429)
00:43:49 E AndroidRuntime : at android.os.Handler.handleCallback(Handler.java:751)
00:43:49 E AndroidRuntime : at android.os.Handler.dispatchMessage(Handler.java:95)
00:43:49 E AndroidRuntime : at android.os.Looper.loop(Looper.java:154)
00:43:49 E AndroidRuntime : at android.app.ActivityThread.main(ActivityThread.java:6121)
00:43:49 E AndroidRuntime : at java.lang.reflect.Method.invoke(Native Method)
00:43:49 E AndroidRuntime : at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
00:43:49 E AndroidRuntime : at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)

【问题讨论】:

【参考方案1】:

您的问题是您尝试将格式为 "28°23′50"String 解析为 Double,这是不可能的。

    一种解决方案是将坐标保存为(例如,纬度=32.82108,经度=-16.975873)

    或者使用您的坐标但不将值解析为Double

【讨论】:

现在我收到此错误 05:34:22 E AndroidRuntime:java.lang.RuntimeException:无法启动活动 ComponentInfocom.mar.tnow/com.mar.tnow.MapActivity:java。 lang.NullPointerException:尝试在空对象引用上调用虚拟方法“com.google.android.gms.maps.GoogleMap com.google.android.gms.maps.MapFragment.getMap()”【参考方案2】:

您正在尝试将 28°23'50 解析为双精度。 将此参数作为字符串传递或转换为双精度的 WGS-84 坐标。 这取决于您的要求。

【讨论】:

以上是关于Android谷歌地图不断崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Android 谷歌地图、移动标记崩溃应用

Android Jetpack compose:使用谷歌地图在地图创建时崩溃

Flutter Android App 在使用谷歌地图时崩溃

从谷歌地图获取经度和纬度的不断更新[重复]

应用程序在谷歌地图加载时崩溃,错误“libc.so abort 160 flutter”

谷歌地图片段无法膨胀