2016-10-13 4 views
2

Я создал приложение в iOS и теперь создаю приложение на Android. Я в основном делаю это с приложением, но у меня довольно сложная проблема в приложении. Я буду проходить через приложение, попадающее на разные страницы, когда приложение выйдет из строя. Кажется, он довольно случайный и, похоже, проблема с памятью. На каждой «странице» может быть 0-2 изображения на странице, но ничего значительного (небольшие png-файлы). Я использую комбинацию android ImageView и MvxImageView. Я устанавливаю MvxImageView через связывание ImageUrl так:MvxImageView.SetImageBitmap, вызывающий «нарушение памяти»

местный: MvxBind = "ImageUrl CurrencyImage"

Вот исключение я получаю:

[mono-rt] Stacktrace: 
[mono-rt] 
[mono-rt] at <unknown> <0xffffffff> 
[mono-rt] at (wrapper managed-to-native) Java.Interop.NativeMethods.java_interop_jnienv_call_nonvirtual_void_method_a (intptr,intptr&,intptr,intptr,intptr,Java.Interop.JniArgumentValue*) <0x0005b> 
[mono-rt] at Java.Interop.JniEnvironment/InstanceMethods.CallNonvirtualVoidMethod (Java.Interop.JniObjectReference,Java.Interop.JniObjectReference,Java.Interop.JniMethodInfo,Java.Interop.JniArgumentValue*) [0x0008f] in /Users/builder/data/lanes/3819/96c7ba6c/source/Java.Interop/src/Java.Interop/Java.Interop/JniEnvironment.g.cs:12079 
[mono-rt] at Java.Interop.JniPeerMembers/JniInstanceMethods.InvokeVirtualVoidMethod (string,Java.Interop.IJavaPeerable,Java.Interop.JniArgumentValue*) [0x00068] in /Users/builder/data/lanes/3819/96c7ba6c/source/Java.Interop/src/Java.Interop/Java.Interop/JniPeerMembers.JniInstanceMethods_Invoke.cs:31 
[mono-rt] at Android.Widget.ImageView.SetImageBitmap (Android.Graphics.Bitmap) [0x0002c] in /Users/builder/data/lanes/3819/96c7ba6c/source/monodroid/src/Mono.Android/platforms/android-24/src/generated/Android.Widget.ImageView.cs:1026 
[mono-rt] at MvvmCross.Binding.Droid.Views.MvxImageView.SetImageBitmap (Android.Graphics.Bitmap) <IL 0x00032, 0x0019b> 
[mono-rt] at MvvmCross.Binding.Droid.Views.MvxImageView/<>c__DisplayClass19_0.<ImageHelperOnImageChanged>b__0() <IL 0x00011, 0x000b7> 
[mono-rt] at Java.Lang.Thread/RunnableImplementor.Run() [0x0000b] in /Users/builder/data/lanes/3819/96c7ba6c/source/xamarin-android/src/Mono.Android/Java.Lang/Thread.cs:36 
[mono-rt] at Java.Lang.IRunnableInvoker.n_Run (intptr,intptr) [0x00009] in /Users/builder/data/lanes/3819/96c7ba6c/source/monodroid/src/Mono.Android/platforms/android-24/src/generated/Java.Lang.IRunnable.cs:81 
[mono-rt] at (wrapper dynamic-method) object.037ff22d-dd39-45fa-8726-c673a7d6897c (intptr,intptr) <IL 0x00011, 0x0003b> 
[mono-rt] at (wrapper native-to-managed) object.037ff22d-dd39-45fa-8726-c673a7d6897c (intptr,intptr) <IL 0x00021, 0x000ef> 

А вот аудит я вижу в DDMS:

10-13 17:26:06.213: E/audit(2793): type=1701 msg=audit(1476393966.213:869): auid=4294967295 uid=10198 gid=10198 ses=4294967295 subj=u:r:untrusted_app:s0:c512,c768 pid=14236 comm="APPNAME.droid" reason="memory violation" sig=11 

Любая помощь была бы принята с благодарностью. Когда я говорю об этом выше, в основном в течение 30 секунд после «забивания» в приложении что-то происходит.

Приборы: Большая часть тестирования на Samsung Galaxy Tab A и это от исключения выше. Также были протестированы на более старых телефонах LG и последнем Nexus. Телефон LG имеет такую ​​же ошибку. Последний Nexus Я получил ошибку, но не настолько последователен. Я могу быть в приложении некоторое время, иногда без проблем.

+0

Вы используете плагин 'MvvmCross DownloadCache' и' File'? Их можно найти на 'NuGet'. – Pilatus

+0

Да, я использую оба плагина. –

+0

Можете ли вы сделать образец для повторного воспроизведения и отправить ошибку на https://github.com/mvvmcros/mvvmcross-plugins/issues? В качестве альтернативы вы можете попробовать использовать что-то вроде FFImageLoading и посмотреть, сохранится ли это. FFImageLoading имеет специальный ImageView MvvmCross, с которым вы можете привязываться так же, как MvxImageView. – Cheesebaron

ответ

0

Хотя это не исправить мою проблему с MvxImageView, я попробовал Picasso. Я создал объект PicassoImageView и создал публичный «ImageURL», который позволил мне по-прежнему использовать привязку MvvmCross. С тех пор я не видел ошибки.

 Смежные вопросы

  • Нет связанных вопросов^_^