Android MapActivity-宽度和高度必须为>;0

Android MapActivity-宽度和高度必须为>;0,android,google-maps,android-mapview,Android,Google Maps,Android Mapview,我使用mapActivity和MapView创建了一个应用程序,遇到了wierd消息: “E/AndroidRuntime(4276):java.lang.IllegalArgumentException:宽度和高度必须大于0” 这条信息并不总是显示出来。我追溯了它出现的情况,发现: 1) 如果我触摸应用程序并运行它已经很长时间了,崩溃将出现,请注意,如果在崩溃后我重新打开应用程序,则会再次出现无崩溃 2) 如果我删除内存(RAM),那么在我运行应用程序后,它将崩溃 3) 如果我运行dibugg

我使用mapActivity和MapView创建了一个应用程序,遇到了wierd消息:
“E/AndroidRuntime(4276):java.lang.IllegalArgumentException:宽度和高度必须大于0”

这条信息并不总是显示出来。我追溯了它出现的情况,发现:

1) 如果我触摸应用程序并运行它已经很长时间了,崩溃将出现,请注意,如果在崩溃后我重新打开应用程序,则会再次出现崩溃

2) 如果我删除内存(RAM),那么在我运行应用程序后,它将崩溃

3) 如果我运行dibugg模式,那么我永远不会遇到崩溃

从我的角度来看,我认为这次崩溃与安卓系统没有犯错误,但仍在努力展示的东西有关。 但我仍然不接触mapview misure参数,所以为什么我会发生这种崩溃? 无论如何,我不知道该怎么做,因为调试模式在这里真的帮不了什么忙。 我将在此处显示我的onCreate():


我想我得到了答案,但我不确定,只有时间能告诉我像thoes这样的虫子。似乎我不应该在使用谷歌地图时触摸onCreate上的屏幕,因此如果我想执行ZoomIn或setZoom(一些数字),那么我应该在onResume()上执行,而不是在onCreate上执行。希望有一天,这会对某人有所帮助:) 顺便说一句:
如果有人知道这是否真的是问题,或者这只是一个暂时的解决方案,那么我想听听,因为它似乎与我的解决方案配合得很好:)

您应该在onWindowFocusChanged中进行更改,因为在此之前您没有分配屏幕高度/宽度

 @Override
   public void onWindowFocusChanged(boolean hasFocus) {
      if (hasFocus) {
             setOverlay(); //Your code should come here
         }
      }
      super.onWindowFocusChanged(hasFocus);
   }
 @Override
   public void onWindowFocusChanged(boolean hasFocus) {
      if (hasFocus) {
             setOverlay(); //Your code should come here
         }
      }
      super.onWindowFocusChanged(hasFocus);
   }