2012-04-18 3 views
1

Я разрабатываю приложение, которое использует Карты Google. Он отлично работает на всех устройствах, за исключением определенного устройства: Google Nexus S - у нас есть доступ только к одному из таких устройств. Ошибка в том, что при навигации по Картам приложение выходит из строя с помощью OutOfMemoryError. Ниже трассировки стека:android google maps crash on Nexus S

04-18 14:17:52.601 E/AndroidRuntime(2714): FATAL EXCEPTION: main 
04-18 14:17:52.601 E/AndroidRuntime(2714): java.lang.OutOfMemoryError 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.graphics.Bitmap.nativeCreate(Native Method) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.graphics.Bitmap.createBitmap(Bitmap.java:605) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.graphics.Bitmap.createBitmap(Bitmap.java:585) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at com.google.android.maps.ZoomHelper.createSnapshot(ZoomHelper.java:444) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at com.google.android.maps.ZoomHelper.beginZoom(ZoomHelper.java:194) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at com.google.android.maps.MapView$2.onScaleBegin(MapView.java:380) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.ScaleGestureDetector.onTouchEvent(ScaleGestureDetector.java:261) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at com.google.android.maps.MapView.onTouchEvent(MapView.java:682) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.View.dispatchTouchEvent(View.java:5486) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1953) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1714) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1959) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1728) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1892) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1371) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.app.Activity.dispatchTouchEvent(Activity.java:2364) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1840) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.View.dispatchPointerEvent(View.java:5662) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:2863) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.os.Handler.dispatchMessage(Handler.java:99) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.os.Looper.loop(Looper.java:137) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at android.app.ActivityThread.main(ActivityThread.java:4340) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at java.lang.reflect.Method.invoke(Method.java:511) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
04-18 14:17:52.601 E/AndroidRuntime(2714):  at dalvik.system.NativeStart.main(Native Method) 

Может кто-нибудь подтвердить, если они столкнулись с той же проблемой? Если да, то у вас есть решение для этого?

ответ

0

У приложения заканчивается память. Вы используете много памяти в других местах вашего приложения (т. Е. Загружаете большие растровые изображения)?

+0

Я использую и загружаю растровые изображения ... некоторые из них действительно большие, но они не загружаются в активность карты. У вас есть какие-либо ресурсы/ссылки о том, как повысить производительность битмапа без потери качества? – gunar

0

Я столкнулся с тем же, что и с TF201.

Удалите все обновления, а затем переустановите его через настольный компьютер. (play.google.com). По крайней мере, это сработало для меня. Вероятно, удалите кешированные данные и все это.

+0

Это приложение для разработки, не загруженное из игры google ... – gunar

1

Я столкнулся с той же проблемой на своей Galaxy S2 с ICS 4.0.4. Я очистил данные из меню приложений для карты Google, и сила остановила его. После этого перезагрузили карту Google, и она отлично работала.

0

На всякий случай кто-то наткнулся на этот вопрос, вот guide от разработчиков Android о том, как эффективно работать с растровыми изображениями.