MapView抛出IllegalArgumentException - 错误的图像大小:192 192

时间:2011-09-22 05:21:17

标签: android google-maps android-mapview illegalargumentexception

我收到三星Vibrant Galaxy S用户的过多崩溃报告。在搜索此问题的解决方案之后,我遇到的唯一问题是Google代码上的公开问题:http://code.google.com/p/android/issues/detail?id=4599

线程建议扩展MapView并捕获异常。这是最好的方法,还是有更好的方法?我想彻底解决这个问题,而不是在上面绷带。

这是堆栈跟踪:

java.lang.IllegalArgumentException: wrong image size: 192 192
at com.google.googlenav.map.MapTile.getImage(Unknown Source)
at com.google.googlenav.map.Map.drawTile(Unknown Source)
at com.google.googlenav.map.Map.drawMapBackground(Unknown Source)
at com.google.googlenav.map.Map.drawMap(Unknown Source)
at com.google.android.maps.MapView.drawMap(MapView.java:1048)
at com.google.android.maps.MapView.onDraw(MapView.java:486)
at android.view.View.draw(View.java:6597)
at android.view.ViewGroup.drawChild(ViewGroup.java:1533)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1260)
at android.view.ViewGroup.drawChild(ViewGroup.java:1531)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1260)
at android.view.View.draw(View.java:6600)
at android.widget.FrameLayout.draw(FrameLayout.java:352)
at android.view.ViewGroup.drawChild(ViewGroup.java:1533)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1260)
at android.view.View.draw(View.java:6600)
at android.widget.FrameLayout.draw(FrameLayout.java:352)
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1884)
at android.view.ViewRoot.draw(ViewRoot.java:1374)
at android.view.ViewRoot.performTraversals(ViewRoot.java:1139)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1658)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
at dalvik.system.NativeStart.main(Native Method)

2 个答案:

答案 0 :(得分:2)

希望其他人会出现另一个答案来证明我的错误,但根据我对设备特定问题的个人经验,抓住例外通常似乎是你能做到的最好。

关于以下评论进行编辑:这是重点,在扩展WebView一次时,我确实遇到了使用自定义WebView代码的特定设备的一些新问题。

这里有很多人有比我更多的经验,我希望他们中的一个能够提供更明确的答案或更少的hacky解决方案,但如果有必要,你可以随时使用{{1} },android.os.Build.DEVICE和/或android.os.Build.MODEL确定应用程序是否在Samsung Vibrant Galaxy S上运行,并且(通过反射)仅在使用自定义MapView类时使用。

答案 1 :(得分:0)

可能是您在此处犯了错误,因此请将代码更改为正确的表单,或输入

  <uses-library android:name="com.google.android.maps"   // in manifest under inside applicaiton tag
              android:required="true"/>


//wrong usage of activity
 public class A extends Actvitiy 
 {
  }
    //correct usage
  public class A extedns MapsActivity 
 {
      //your all program...
   }