MapView бросает IllegalArgumentException - Неправильный размер изображения: 192 192 - PullRequest
4 голосов
/ 22 сентября 2011

Я получаю чрезмерные отчеты о сбоях от пользователей Samsung Vibrant Galaxy S. После поиска решений этой проблемы единственное, с чем я столкнулся, была открытая проблема в Google Code: 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 ]

2 голосов
/ 25 сентября 2011

Надеюсь, кто-то еще появится с другим ответом, чтобы доказать, что я не прав, но по моему личному опыту решения проблем, связанных с устройством, часто кажется, что лучше всего ловить исключения.

Отредактируйте в отношении вашего комментария ниже: Это точка, и я столкнулся с некоторыми новыми проблемами с конкретными устройствами, использующими настраиваемый код WebView при расширении WebView один раз.

Здесь есть масса людей с гораздо большим опытом, чем у меня, и я надеюсь, что один из них придет, чтобы дать более определенный ответ или менее хакерское решение, но при необходимости вы всегда можете использовать android.os.Build.DEVICE, android.os.Build.MODEL и / или android.os.Build.PRODUCT, чтобы определить, работает ли приложение на Samsung Vibrant Galaxy S, и (с помощью отражения) использовать пользовательский класс MapView, только если он есть.

0 голосов
/ 29 ноября 2012

Может быть, Вы здесь сделали ошибку, поэтому измените код на правильную форму или введите

  <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...
   }
...