android 5.0 Xamarin上的布局膨胀异常

时间:2018-09-04 15:46:49

标签: c# android xamarin.android

我知道这个问题听起来很像该站点上已经存在的许多问题,但是,由于一个简单的原因,它有很大的不同,apk确实可以正常工作,当我尝试执行它时,主要问题就来了在装有Android 5.0或更高版本的设备上,出现此错误:

  

Android.Views.InflateException:二进制XML文件第46行:二进制XML文件第46行:错误膨胀了com.android.internal.widget.ActionBarContextView类

这是完整的错误日志:

  

08-31 17:15:41.176 I / MonoDroid(16983):异常异常:   08-31 17:15:41.228 I / MonoDroid(16983):Android.Views.InflateException:二进制XML文件第46行:二进制XML文件第46行:膨胀类com.android.internal.widget.ActionBarContextView的错误- > Android.Views.InflateException:二进制XML文件第46行:膨胀类com.android.internal.widget.ActionBarContextView ---> Java.Lang.Reflect.InvocationTargetException:类型为'Java.Lang.Reflect.InvocationTargetException'的异常被扔了。 ---> Android.Content.Res.Resources + NotFoundException:可绘制资源ID#0x7f020078中的文件res / drawable / fondo.jpg:需要.xml扩展名   08-31 17:15:41.228 I / MonoDroid(16983):-内部异常堆栈跟踪结束-   08-31 17:15:41.228 I / MonoDroid(16983):-内部异常堆栈跟踪结束-   08-31 17:15:41.228 I / MonoDroid(16983):-内部异常堆栈跟踪结束-   08-31 17:15:41.228 I / MonoDroid(16983):位于System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()[0x0000c] in:0   08-31 17:15:41.228 I / MonoDroid(16983):在Java.Interop.JniEnvironment + InstanceMethods.CallNonvirtualVoidMethod(Java.Interop.JniObjectReference实例,Java.Interop.JniObjectReference类型,Java.Interop.JniMethodInfo方法,Java.Interop .JniArgumentValue * args)[0x00089]在<7802aa64ad574c33adca332a3fa9706a>:0中   08/31 17:15:41.228 I / MonoDroid(16983):在Java.Interop.JniPeerMembers + JniInstanceMethods.InvokeVirtualVoidMethod(System.String编码的成员,Java.Interop.IJavaPeerable自我,Java.Interop.JniArgumentValue *参数)[0x0005d]在<7802aa64ad574c33adca332a3fa9706a>:0   08-31 17:15:41.228 I / MonoDroid(16983):在<263adecfa58f4c449f1ff56156d886fd>:0中的Android.App.Activity.SetContentView(System.Int32 layoutResID)[0x00022]   08-31 17:15:41.228 I / MonoDroid(16983):位于C:\ Users \ Ricardo Vivas \ source \ repos \ Pedidos \ Pedidos \ Order中的Pedidos.Order_Mobile.OnCreate(Android.OS.Bundle savedInstanceState)[0x00009] Mobile.cs:23   08-31 17:15:41.228 I / MonoDroid(16983):在Android.App.Activity.n_OnCreate_Landroid_os_Bundle_(System.IntPtr jnienv,System.IntPtr native__this,System.IntPtr native_savedInstanceState)[0x0000f]在<263adecfa58f56d0d56d56d56d56d56d56d156c1120d1886d1d {1}>   08-31 17:15:41.228 I / MonoDroid(16983):at(包装动态方法)System.Object.d2b532b9-063b-4cdb-8acc-161a755998d8(intptr,intptr,intptr)   08-31 17:15:41.228 I / MonoDroid(16983):-托管的Android.Views.InflateException堆栈跟踪结束-   08-31 17:15:41.228 I / MonoDroid(16983):android.view.InflateException:二进制XML文件第46行:二进制XML文件第46行:膨胀类com.android.internal.widget.ActionBarContextView时出错   08-31 17:15:41.228 I / MonoDroid(16983):位于android.view.LayoutInflater.inflate(LayoutInflater.java:539)   08-31 17:15:41.228 I / MonoDroid(16983):位于android.view.LayoutInflater.inflate(LayoutInflater.java:423)   08-31 17:15:41.228 I / MonoDroid(16983):位于android.view.LayoutInflater.inflate(LayoutInflater.java:374)   08-31 17:15:41.228 I / MonoDroid(16983):在com.android.internal.policy.PhoneWindow.generateLayout(PhoneWindow.java:4000)   08-31 17:15:41.229 I / MonoDroid(16983):在com.android.internal.policy.PhoneWindow.installDecor(PhoneWindow.java:4079)   08-31 17:15:41.229 I / MonoDroid(16983):在com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:402)   08-31 17:15:41.229 I / MonoDroid(16983):位于android.app.Activity.setContentView(Activity.java:2191)   08-31 17:15:41.229 I / MonoDroid(16983):位于md5b750df5c4e09c9ddbc69b02eb7fa087e.Order_Mobile.n_onCreate(本机方法)   08-31 17:15:41.229 I / MonoDroid(16983):位于md5b750df5c4e09c9ddbc69b02eb7fa087e.Order_Mobile.onCreate(Order_Mobile.java:29)   08-31 17:15:41.229 I / MonoDroid(16983):在android.app.Activity.performCreate(Activity.java:6309)   08-31 17:15:41.229 I / MonoDroid(16983):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1113)   08-31 17:15:41.229 I / MonoDroid(16983):位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2519)   08-31 17:15:41.229 I / MonoDroid(16983):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2654)   08-31 17:15:41.229 I / MonoDroid(16983):位于android.app.ActivityThread.-wrap11(ActivityThread.java)   08-31 17:15:41.229 I / MonoDroid(16983):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1488)   08-31 17:15:41.229 I / MonoDroid(16983):位于android.os.Handler.dispatchMessage(Handler.java:111)   08-31 17:15:41.229 I / MonoDroid(16983):位于android.os.Looper.loop(Looper.java:207)   08-31 17:15:41.229 I / MonoDroid(16983):位于android.app.ActivityThread.main(ActivityThread.java:5728)   08-31 17:15:41.229 I / MonoDroid(16983):at java.lang.reflect.Method.invoke(本机方法)   08-31 17:15:41.229 I / MonoDroid(16983):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:789)   08-31 17:15:41.229 I / MonoDroid(16983):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)   08-31 17:15:41.229 I / MonoDroid(16983):原因:android.view.InflateException:二进制XML文件第46行:膨胀类com.android.internal.widget.ActionBarContextView的错误   发生未处理的异常。

     

08-31 17:15:41.232 I / MonoDroid(16983):位于android.view.LayoutInflater.createView(LayoutInflater.java:645)   08-31 17:15:41.232 I / MonoDroid(16983):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)   08-31 17:15:41.232 I / MonoDroid(16983):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)   08-31 17:15:41.232 I / MonoDroid(16983):位于android.view.LayoutInflater.rInflate(LayoutInflater.java:835)   08-31 17:15:41.232 I / MonoDroid(16983):位于android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)   08-31 17:15:41.232 I / MonoDroid(16983):位于android.view.LayoutInflater.rInflate(LayoutInflater.java:838)   08-31 17:15:41.233 I / MonoDroid(16983):位于android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)   08-31 17:15:41.233 I / MonoDroid(16983):位于android.view.LayoutInflater.inflate(LayoutInflater.java:515)   08-31 17:15:41.233 I / MonoDroid(16983):...还有20个   08-31 17:15:41.233 I / MonoDroid(16983):由以下原因引起:java.lang.reflect.InvocationTargetException   08-31 17:15:41.233 I / MonoDroid(16983):位于java.lang.reflect.Constructor.newInstance(本机方法)   08-31 17:15:41.234 I / MonoDroid(16983):位于android.view.LayoutInflater.createView(LayoutInflater.java:619)   08-31 17:15:41.234 I / MonoDroid(16983):...还有27个   08-31 17:15:41.234 I / MonoDroid(16983):由以下原因引起:android.content.res.Resources $ NotFoundException:来自可绘制资源ID#0x7f020078的文件res / drawable / fondo.jpg:需要.xml扩展名   08-31 17:15:41.234 I / MonoDroid(16983):位于android.content.res.Resources.loadColorStateListForCookie(Resources.java:2990)   08-31 17:15:41.234 I / MonoDroid(16983):位于android.content.res.Resources.loadColorStateList(Resources.java:2931)   08-31 17:15:41.234 I / MonoDroid(16983):位于android.content.res.TypedArray.getColorStateList(TypedArray.java:485)   08-31 17:15:41.234 I / MonoDroid(16983):位于android.graphics.drawable.GradientDrawable.updateGradientDrawableSolid(GradientDrawable.java:1320)   08-31 17:15:41.234 I / MonoDroid(16983):位于android.graphics.drawable.GradientDrawable.applyThemeChildElements(GradientDrawable.java:1148)   08-31 17:15:41.234 I / MonoDroid(16983):位于android.graphics.drawable.GradientDrawable.applyTheme(GradientDrawable.java:1056)   08-31 17:15:41.234 I / MonoDroid(16983):位于android.graphics.drawable.LayerDrawable.applyTheme(LayerDrawable.java:330)   08-31 17:15:41.234 I / MonoDroid(16983):位于android.content.res.Resources.loadDrawable(Resources.java:2765)   08-31 17:15:41.234 I / MonoDroid(16983):在android.content.res.TypedArray.getDrawable(TypedArray.java:870)   08-31 17:15:41.234 I / MonoDroid(16983):位于android.view.View。(View.java:4001)   08-31 17:15:41.234 I / MonoDroid(16983):位于android.view.ViewGroup。(ViewGroup.java:604)   08-31 17:15:41.238 I / MonoDroid(16983):位于com.android.internal.widget.AbsActionBarView。(AbsActionBarView.java:70)   08-31 17:15:41.238 I / MonoDroid(16983):在com.android.internal.widget.ActionBarContextView。(ActionBarContextView.java:83)   08-31 17:15:41.238 I / MonoDroid(16983):在com.android.internal.widget.ActionBarContextView。(ActionBarContextView.java:78)   08-31 17:15:41.239 I / MonoDroid(16983):在com.android.internal.widget.ActionBarContextView。(ActionBarContextView.java:74)   08-31 17:15:41.239 I / MonoDroid(16983):...还有29个

这是我要调用的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:p1="http://schemas.android.com/apk/res/android"
    p1:layout_width="match_parent"
    p1:layout_height="match_parent"
    p1:id="@+id/linearLayout1"
    p1:weightSum="100"
    p1:orientation="vertical">
    <LinearLayout
        p1:orientation="vertical"
        p1:minWidth="25px"
        p1:minHeight="25px"
        p1:layout_width="match_parent"
        p1:layout_height="0dp"
        p1:id="@+id/linearLayout2"
        p1:background="#ff102563"
        p1:layout_weight="13"
        p1:layout_gravity="center"
        p1:gravity="center">
        <ImageView
            p1:src="@drawable/logoapp"
            p1:id="@+id/imageView1"
            p1:layout_width="match_parent"
            p1:layout_height="wrap_content" />
    </LinearLayout>
    <Space
        p1:layout_width="match_parent"
        p1:layout_height="0dp"
        p1:id="@+id/space3"
        p1:layout_weight="20" />
    <LinearLayout
        p1:orientation="horizontal"
        p1:minWidth="25px"
        p1:minHeight="25px"
        p1:id="@+id/linearLayout3"
        p1:layout_width="match_parent"
        p1:layout_height="0dp"
        p1:layout_weight="47"
        p1:weightSum="100">
        <Space
            p1:layout_width="0dp"
            p1:layout_height="match_parent"
            p1:id="@+id/space1"
            p1:layout_weight="20" />
        <ImageView
            p1:src="@drawable/logoinn2"
            p1:id="@+id/imageView2"
            p1:layout_width="0dp"
            p1:layout_height="match_parent"
            p1:layout_weight="60" />
        <Space
            p1:layout_width="0dp"
            p1:layout_height="match_parent"
            p1:id="@+id/space2"
            p1:layout_weight="20" />
    </LinearLayout>
    <Space
        p1:layout_width="match_parent"
        p1:layout_height="0dp"
        p1:id="@+id/space4"
        p1:layout_weight="20" />
</LinearLayout>

(我知道此构造方法效率低下,请忽略它) 这是活动:

[Activity(Label = "Order Mobile", MainLauncher = true, Theme = "@style/NoActionBarTheme")]
    public class Order_Mobile : Activity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.Intro); (Error Here)
        ...
        }

以防万一,这是用于该视图的主题:

<style name="NoActionBarTheme" parent="@android:style/Theme.DeviceDefault">
    <item name="android:actionBarStyle">@style/invisible_action_bar_style</item>
    <item name="android:textColorPrimary">#fff3f3f3</item>
    <item name="android:colorPrimary">#ff102563</item>
    <item name="android:colorBackground">@color/theme_custom_background</item>
    <item name="android:windowBackground">?android:attr/colorBackground</item>
    <item name="android:textColorSecondary">#ff030303</item>
    <item name="android:colorButtonNormal">#ff1a237e</item>
    <item name="android:colorControlActivated">#ff3d5afe</item>
    <item name="android:colorPrimaryDark">#ff3f51b5</item>
    <item name="android:colorAccent">#ff1de9b6</item>
    <item name="android:colorControlNormal">#ffb2dfdb</item>
  </style>
  <style name="invisible_action_bar_style"     parent="android:Widget.Holo.ActionBar">
    <item name="android:height">1dp</item>
  </style>

如果我的帖子不合适或不足,请多谢,这是我第一次这样做。

0 个答案:

没有答案