今天我遇到了一个奇怪的问题,当我试图在Moto Z play(这是一个XXHDPI设备)中运行一个应用程序时,用一些图像膨胀自定义视图,然后应用程序为位图抛出OOM异常。但是同样的应用在其他XXHDPI设备中运行良好。
我无法理解为什么如果图像出现问题会出现此问题,那么它应该出现在每个XXHDPI分辨率手机中,但这只发生在这些设备中。
任何指针都非常有用。
XML文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/allImageView"
android:src="@drawable/AllImage"/>
<ImageView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:visibility="gone"
android:id="@+id/backImageView"
android:src="@drawable/BackImage"/>
<ImageView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:visibility="gone"
android:id="@+id/leftImageView"
android:src="@drawable/LeftImage"/>
<ImageView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:visibility="gone"
android:id="@+id/right`enter code here`ImageView"
android:src="@drawable/RightImage"/>
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:visibility="gone"
android:src="@drawable/unknown"
android:layout_centerInParent="true"
android:id="@+id/UnknownImageView" />
</RelativeLayout>`
崩溃日志
包装:com.abc.xyz 版本代码:21 版本名称:21 Android:7.0 Android Build:NPN25.137-15-2 制造商:motorola 型号:XT1635-02 线程:main-1 CrashReporter密钥:705C5100-EC27-C99F-E823-965A4C51E329DF46F9DD 开课日期:周一7月3日16:53:04 GMT + 05:30 2017 日期:星期一7月3日17:17:03 GMT + 2017年5月30日 格式:Xamarin
Xamarin引起的:android.runtime.JavaProxyThrowable: System.NotSupportedException:无法激活JNI句柄0xbefd1808 Java类型的(key_handle 0xee52e28) &#39; md5fae2d7276310b1283693420df3d731df / SampleView&#39;作为托管类型 &#39; MobileApp.Droid.Views.SampleView&#39 ;. ---&GT; Java.Lang.RuntimeException:Binary XML文件行#1:二进制XML文件行#1:错误膨胀类---&gt; Java.Lang.RuntimeException:二进制XML文件行#1:错误类膨胀 ---&GT; Java.Lang.ReflectiveOperationException:类型为
的异常 &#39; Java.Lang.ReflectiveOperationException&#39;被扔了。 ---&GT; Java.Lang.OutOfMemoryError:无法使用&gt;分配15810572字节分配直到OOM,1711936个空闲字节和1671KB ---内部异常堆栈跟踪结束--- ---内部异常堆栈跟踪结束--- ---内部异常堆栈跟踪结束--- 在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()[0x0000c]&gt; in:0 在Java.Interop.JniEnvironment + StaticMethods.CallStaticObjectMethod (Java.Interop.JniObjectReference类型,Java.Interop.JniMethodInfo方法, Java.Interop.JniArgumentValue * args)[0x00082] in :0 at Java.Interop.JniPeerMembers + JniStaticMethods.InvokeObjectMethod (System.String encodedMember,Java.Interop.JniArgumentValue * parameters) [0x00019] in:0 在Android.Views.View.Inflate(Android.Content.Context context,System.Int32&gt; resource,Android.Views.ViewGroup root)[0x00073] in &LT; 7f31f6af154d41c2bc02beb149fde7ee&GT;:0 在MobileApp.Droid.Views.SampleView.Initialize()[0x00006]中 :0 在MobileApp.Droid.Views.SampleView..ctor(Android.Content.Context context, Android.Util.IAttributeSet attrs)[0x00008] in :0 at(wrapper dynamic-method)System.Object:1c1e10c7-efc5-4985-b342- f7e8755679f4(intptr,object []) at Java.Interop.TypeManager.n_Activate(System.IntPtr jnienv,System.IntPtr) jclass,System.IntPtr typename_ptr,System.IntPtr signature_ptr,System.IntPtr&gt; jobject,System.IntPtr parameters_ptr)[0x000fb] in &LT; 7f31f6af154d41c2bc02beb149fde7ee&GT;:0 ---内部异常堆栈跟踪结束--- at Java.Interop.TypeManager.n_Activate(System.IntPtr jnienv,System.IntPtr) jclass,System.IntPtr typename_ptr,System.IntPtr signature_ptr,System.IntPtr&gt; jobject,System.IntPtr parameters_ptr)[0x00189] in &LT; 7f31f6af154d41c2bc02beb149fde7ee&GT;:0 at(wrapper dynamic-method)System.Object:a36f9a92-3454-42f0-9910- ef12350699c2(intptr,intptr,intptr,intptr,intptr,intptr) at mono.android.TypeManager.n_activate(Native Method) at mono.android.TypeManager.Activate(TypeManager.java:7) 在md5fae2d7276310b1283693420df3d731df.SampleView。(SampleView.java:30) at java.lang.reflect.Constructor.newInstance0(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:430) 在android.view.LayoutInflater.createView(LayoutInflater.java:645) 在 uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater。 createCustomViewInternal(CalligraphyLayoutInflater.java:211) at&gt; uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater.access $ 000个 (CalligraphyLay&GT; outInflater.java:20) at&gt; uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater $ PrivateWrapperFactory2.on&GT; CreateView的(CalligraphyLayoutInflater.java:302) 在android.view.LayoutInflater $ FactoryMerger。 onCreateView(LayoutInflater.java:189) 在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:777) 在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) 在android.view.LayoutInflater.rInflate(LayoutInflater.java:858) 在android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 在android.view.LayoutInflater.rInflate(LayoutInflater.java:861) 在android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 在android.view.LayoutInflater.rInflate(LayoutInflater.java:861) 在android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 在android.view.LayoutInflater.rInflate(LayoutInflater.java:861) 在android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 在android.view.LayoutInflater.rInflate(LayoutInflater.java:861) 在android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 在android.view.LayoutInflater.inflate(LayoutInflater.java:518) 在uk.co.chrisjenx.calligraphy.CalligraphyLayoutInflater。 膨胀(CalligraphyLayout&GT; Inflater.java:60) 在android.view.LayoutInflater.inflate(LayoutInflater.java:426) 在md5a36dbcf21d3fe8ab142ce63b52c6ee92.CarHealthTyreFragment。 n_onCreateView(Native&gt; Method) 在md5a36dbcf21d3fe8ab142ce63b52c6ee92.CarHealthTyreFragment。 onCreateView(CarHealt&GT; hTyreFragment.java:39) 在android.support.v4.app.Fragment.performCreateView(Fragment.java:2189) 在android.support.v4.app.FragmentManagerImpl。 moveToState(FragmentManager.java:129>9) 在android.support.v4.app.FragmentManagerImpl。 moveFragmentToExpectedState(片断&gt; Manager.java:1528) 在android.support.v4.app.FragmentManagerImpl。 moveToState(FragmentManager.java:159>5) 在android.support.v4.app.BackStackRecord。 executeOps(BackStackRecord.java:757) 在android.support.v4.app.FragmentManagerImpl。 executeOps(FragmentManager.java:2355>) 在android.support.v4.app.FragmentManagerImpl。 executeOpsTogether(FragmentManager.java:2146) 在 android.support.v4.app.FragmentManagerImpl。 optimizeAndExecuteOps(FragmentManager.java:2098) 在android.support.v4.app.FragmentManagerImpl。 execSingleAction(FragmentManager.jav&gt;一种:1979)
感谢。