4

我收到來自三星充滿活力的Galaxy S用戶的過度崩潰報告。尋找解決這個問題後,唯一遇到的問題是在谷歌代碼:http://code.google.com/p/android/issues/detail?id=4599MapView拋出IllegalArgumentException - 錯誤圖像大小:192 192

該線程建議擴展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

希望別人會顯示了另一種答案來證明我是錯的,但在我與設備特定問題的個人經驗,捕獲異常似乎往往是最好的你可以做。

編輯關於您的評論如下:這是一個觀點,我在使用定製的WebView代碼時遇到了一些特定設備的新問題。

在這裏有很多人比我有更多的經驗,我希望他們中的一個會投入到給出更明確的答案或更少hacky的解決方案,但如果有必要,你總是可以使用android.os.Build.DEVICEandroid.os.Build.MODEL和/或android.os.Build.PRODUCT來確定應用程序是否在三星Vibrant Galaxy S上運行,並且(通過反射)只有在自定義MapView類的情況下才使用它。

+0

這是可以理解的,但這個問題是解決此問題的工作對於那些誰佔1%應用程序的使用可能會導致用戶佔其他99%的問題。擴展我不知道的MapView時是否有任何疑問?這是我「解決」這個問題的主要關注點。 – hooked82

+0

這是一個觀點 - 編輯答案。 –

+0

感謝您的意見。我可能不得不用你編輯中的東西去做。我會再花點時間看看其他人是否有完整的解決方案或不同的解決方案。 – hooked82

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... 
    } 
相關問題