我们的Xamarin Android应用程序会对以下设备上的一些用户造成崩溃:
这是NotFoundException崩溃:
Xamarin引起的:android.runtime.JavaProxyThrowable: RPR.Mobile.Shared.ForensicsException:DataFragmentBase - OnCreateView - 片段RPR.Mobile.Droid.Fragments.Ambient.TabletAmbientCompositeFragment中的layoutResourceId 2130903336的膨胀 错误:Android.Content.Res.Resources + NotFoundException:资源ID
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()中的0x7f030128
[0x0000c] in:0 at Java.Interop.JniEnvironment + InstanceMethods.CallObjectMethod (Java.Interop.JniObjectReference实例,Java.Interop.JniMethodInfo 方法,Java.Interop.JniArgumentValue * args)[0x00069] in < 0bfa1a9f6d754384ac2bad519852e6f9>:0 at Java.Interop.JniPeerMembers + JniInstanceMethods.InvokeVirtualObjectMethod (System.String encodedMember,Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue *参数)[0x0002a] in < 0bfa1a9f6d754384ac2bad519852e6f9>:0 at Android.Views.LayoutInflater.Inflate(System.Int32资源, Android.Views.ViewGroup root,System.Boolean attachToRoot)[0x0005a] 在< 354f190b75174df881c91c689800754e>:0 at RPR.Mobile.Droid.Fragments.DataFragmentBase`1 [T] .OnCreateView (Android.Views.LayoutInflater inflater,Android.Views.ViewGroup 容器,Android.OS.Bundle savedInstanceState)[0x00034] in < 8295e3c148c048c688eef3a452730b7a>:0 ---管理结束 Android.Content.Res.Resources + NotFoundException堆栈跟踪--- android.content.res.Resources $ NotFoundException:资源ID
位于的android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:190)的0x7f030128
android.content.res.Resources.loadXmlResourceParser(Resources.java:2124) 在android.content.res.Resources.getLayout(Resources.java:1118)at android.view.LayoutInflater.inflate(LayoutInflater.java:424)at md5413ac457e5f8728857d33bbead6e898a.DataFragmentBase_1.n_onCreateView(母语 方法)at md5413ac457e5f8728857d33bbead6e898a.DataFragmentBase_1.onCreateView(DataFragmentBase_1.java:41)
在Resource.designer.cs中匹配该ID,无法找到的资源是:
// aapt resource value: 0x7f030128
public const int TabletHomePropertyList = 2130903336;
此布局文件位于sw600dp和sw600dp-land文件夹中。因此,即使这两种设备都是平板电脑,它们的最短边也不是至少600dp。我无法访问这些设备,如何为它们找出合适的sw * dp值?
更多的是,我的代码检查它是否是平板电脑然后加载这个平板电脑特定的布局来源于检查值-sw600dp中的维度值。
<bool name="is_large_tablet">true</bool>
因此,如果在值-sw600dp中存在维数,那么它只会尝试加载layout-sw600dp布局文件。这应该有用......我哪里出错?