2016-10-13 1 views
2

저는 iOS에 앱을 제작했으며 현재 Android에서 앱을 제작하고 있습니다. 기본적으로이 앱으로 끝났지 만 앱에서 꽤 일관된 문제가 발생합니다. 앱이 충돌하면 여러 페이지를 때리는 앱을 보러 갈 것입니다. 그것은 꽤 무작위로 보이고 기억 문제로 보입니다. 각 "페이지"는 페이지에 0-2 이미지를 포함 할 수 있지만 주요한 것은 없습니다 (작은 png 파일). 나는 안드로이드 ImageView와 MvxImageView의 조합을 사용하고 있습니다. 나는이 같은 바인딩 이미지 URL을 통해 MvxImageView을 설정하고 있습니다 :MvxImageView.SetImageBitmap이 "메모리 위반"을 야기합니다.

지역 : MvxBind = "이미지 URL 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 초 이내에 "망치질"하는 상황이 발생합니다.

기기 : 삼성 갤럭시 탭 A에서 테스트 한 대부분이며 위 예외입니다. 구형 LG 전화 및 최신 Nexus에서도 테스트를 마쳤습니다. LG 전화도 같은 오류가 발생합니다. 최신 Nexus 오류는 있지만 일관성이 없습니다. 때로는 문제없이 잠시 동안 앱을 사용할 수 있습니다.

+0

당신은'MvvmCross DownloadCache'와'File' 플러그인을 사용하고 있습니까? 이것들은'NuGet'에서 찾을 수 있습니다. – Pilatus

+0

예 두 플러그인을 모두 사용하고 있습니다. –

+0

repro 샘플을 만들고 https://github.com/mvvmcros/mvvmcross-plugins/issues에서 버그를 제출할 수 있습니까? 또는 대신 FFImageLoading과 같은 것을 사용해보고 이것이 지속되는지 확인할 수 있습니다. FFImageLoading에는 MvxImageView와 마찬가지로 바인딩 할 수있는 MvvmCross 특정 ImageView가 있습니다. – Cheesebaron

답변

0

MvxImageView에서이 문제가 해결되지 않았지만 Picasso를 시도했습니다. PicassoImageView 객체를 만들고 공개 "ImageURL"을 만들면 MvvmCross 바인딩을 계속 사용할 수 있습니다. 그 이후 오류를 보지 못했습니다.

관련 문제