Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xamarin Android:Android.Views.InflateException-加载布局时出错_C#_Android_Visual Studio_Xamarin - Fatal编程技术网

C# Xamarin Android:Android.Views.InflateException-加载布局时出错

C# Xamarin Android:Android.Views.InflateException-加载布局时出错,c#,android,visual-studio,xamarin,C#,Android,Visual Studio,Xamarin,我在Visual Studio中编写了一个Xamarin Android应用程序来扫描QR条形码。我的项目中有两个布局和两个活动。当我启动应用程序时,emulator将加载,应用程序将正常启动,不会出现任何问题(主屏幕只是一个按钮,它会导致一个新的意图,这是我的第二个布局/活动)。现在,当我点击按钮切换到下一个活动/布局时,我得到一个异常,应用程序崩溃 ActNewOrder.cs中出现异常,其中“SetContentView(Resource.Layout.lay1Copy);”是: 未处理的

我在Visual Studio中编写了一个Xamarin Android应用程序来扫描QR条形码。我的项目中有两个布局和两个活动。当我启动应用程序时,emulator将加载,应用程序将正常启动,不会出现任何问题(主屏幕只是一个按钮,它会导致一个新的意图,这是我的第二个布局/活动)。现在,当我点击按钮切换到下一个活动/布局时,我得到一个异常,应用程序崩溃

ActNewOrder.cs中出现异常,其中“SetContentView(Resource.Layout.lay1Copy);”是:

未处理的异常:
Android.Views.InflateException:
我在网上找不到任何东西,所以我希望你们能帮助我

提前非常感谢

以下是我的ActNewOrder.cs代码:

using Android.App;
using Android.Widget;
using Android.OS;
using Android.Support.V7.App;
using Android.Views;
using Android.Gms.Vision.Barcodes;
using Android.Gms.Vision;
using Android.Graphics;
using Android.Runtime;
using System;
using Android.Support.V4.App;
using Android;
using Android.Content.PM;
using static Android.Gms.Vision.Detector;
using Android.Util;
using Android.Content;

namespace InstandhaltungApp
{
    [Activity(Label = "ActNewOrder", Theme = "@style/Theme.AppCompat.Light.NoActionBar")]
    public class ActNewOrder : AppCompatActivity, ISurfaceHolderCallback, IProcessor
    {
        SurfaceView cameraPreview;
        TextView txtResult;
        BarcodeDetector barcodeDetector;
        CameraSource cameraSource;
        const int RequestCameraPermissionID = 1001;


        public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Permission[] grantResults)
        {
            switch (requestCode)
            {
                case RequestCameraPermissionID:
                    {
                        if (grantResults[0] == Permission.Granted)
                        {
                            if (ActivityCompat.CheckSelfPermission(ApplicationContext, Manifest.Permission.Camera) != Android.Content.PM.Permission.Granted)
                            {
                                //Request permission
                                ActivityCompat.RequestPermissions(this, new string[]
                                {
                   Manifest.Permission.Camera
                                }, RequestCameraPermissionID);
                                return;
                            }
                            try
                            {
                                cameraSource.Start(cameraPreview.Holder);
                            }
                            catch (InvalidOperationException)
                            {

                            }
                        }
                    }
                    break;
            }
        }

        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.lay1Copy);

            cameraPreview = FindViewById<SurfaceView>(Resource.Id.cameraPreview);
            txtResult = FindViewById<TextView>(Resource.Id.txtResult);

            barcodeDetector = new BarcodeDetector.Builder(this)
                .SetBarcodeFormats(BarcodeFormat.QrCode)
                .Build();
            cameraSource = new CameraSource
                .Builder(this, barcodeDetector)
                .SetRequestedPreviewSize(640, 480)
                .Build();

            cameraPreview.Holder.AddCallback(this);
            barcodeDetector.SetProcessor(this);
        }

        public void SurfaceChanged(ISurfaceHolder holder, [GeneratedEnum] Format format, int width, int height)
        {

        }

        public void SurfaceCreated(ISurfaceHolder holder)
        {
            if (ActivityCompat.CheckSelfPermission(ApplicationContext, Manifest.Permission.Camera) != Android.Content.PM.Permission.Granted)
            {
                //Request permission
                ActivityCompat.RequestPermissions(this, new string[]
                {
                   Manifest.Permission.Camera
                }, RequestCameraPermissionID);
                return;
            }
            try
            {
                cameraSource.Start(cameraPreview.Holder);
            }
            catch (InvalidOperationException)
            {

            }
        }

        public void SurfaceDestroyed(ISurfaceHolder holder)
        {
            cameraSource.Stop();
        }

        public void ReceiveDetections(Detections detections)
        {
            SparseArray qrcodes = detections.DetectedItems;
            if (qrcodes.Size() != 0)
            {
                txtResult.Post(() => {
                    Vibrator vib = (Vibrator)GetSystemService(Context.VibratorService);
                    vib.Vibrate(1000);
                    txtResult.Text = ((Barcode)qrcodes.ValueAt(0)).RawValue;
                });
            }
        }

        public void Release()
        {

        }
    }
}
使用Android.App;
使用Android.Widget;
使用Android.OS;
使用Android.Support.V7.App;
使用Android.Views;
使用Android.Gms.Vision.barcode;
使用Android.Gms.Vision;
使用Android.Graphics;
使用Android.Runtime;
使用制度;
使用Android.Support.V4.App;
使用安卓系统;
使用Android.Content.PM;
使用静态Android.Gms.Vision.Detector;
使用Android.Util;
使用Android.Content;
名称空间InstandhaltungApp
{
[活动(Label=“ActNewOrder”,Theme=“@style/Theme.AppCompat.Light.NoActionBar”)]
公共类ActNewOrder:AppCompativeActivity、ISurfaceHolderCallback、IProcessor
{
表面审查;
TextView txtResult;
条码检测器条码检测器;
摄像源摄像源;
const int RequestCameraPermissionID=1001;
public override void OnRequestPermissionsResult(int-requestCode,字符串[]权限,[GeneratedEnum]权限[]grantResults)
{
开关(请求代码)
{
案例请求CameraPermissionID:
{
if(grantResults[0]==权限.已授予)
{
if(ActivityCompat.CheckSelfPermission(ApplicationContext,Manifest.Permission.Camera)!=Android.Content.PM.Permission.grated)
{
//请求许可
ActivityCompat.RequestPermissions(此,新字符串[])
{
舱单、许可、照相机
},RequestCameraPermissionID);
返回;
}
尝试
{
cameraSource.Start(cameraPreview.Holder);
}
捕获(无效操作异常)
{
}
}
}
打破
}
}
创建时受保护的覆盖无效(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.lay1Copy);
cameraPreview=findviewbyd(Resource.Id.cameraPreview);
txtResult=FindViewById(Resource.Id.txtResult);
barcodeDetector=新的barcodeDetector.Builder(此)
.SetBarcodeFormats(BarcodeFormat.QrCode)
.Build();
cameraSource=新的cameraSource
.Builder(这是条形码检测器)
.SetRequestedPreviewSize(640480)
.Build();
cameraPreview.Holder.AddCallback(本);
条形码检测器。设置处理器(本);
}
public void surfacechange(ISurfaceHolder持有人,[GeneratedEnum]格式,整数宽度,整数高度)
{
}
已处理的公共空隙表面(ISurfaceHolder)
{
if(ActivityCompat.CheckSelfPermission(ApplicationContext,Manifest.Permission.Camera)!=Android.Content.PM.Permission.grated)
{
//请求许可
ActivityCompat.RequestPermissions(此,新字符串[])
{
舱单、许可、照相机
},RequestCameraPermissionID);
返回;
}
尝试
{
cameraSource.Start(cameraPreview.Holder);
}
捕获(无效操作异常)
{
}
}
公共空隙表面置换(ISurfaceHolder)
{
cameraSource.Stop();
}
公共无效接收检测(检测)
{
SparseArray qrcodes=检测。检测项目;
如果(qrcodes.Size()!=0)
{
txtResult.Post(()=>{
可控震源vib=(可控震源)GetSystemService(Context.可控震源服务);
振动(1000);
txtResult.Text=((条形码)qrcodes.ValueAt(0)).RawValue;
});
}
}
公开无效释放()
{
}
}
}
这是我的布局文件lay1Copy.xaml的代码:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/main_left_gl"
        app:layout_constraintGuide_percent=".02"
        android:orientation="vertical" />
    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/main_right_gl"
        app:layout_constraintGuide_percent=".98"
        android:orientation="vertical" />
    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button_left_gl"
        app:layout_constraintGuide_percent=".48"
        android:orientation="vertical" />
    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button_right_gl"
        app:layout_constraintGuide_percent=".52"
        android:orientation="vertical" />
    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/main_top_gl"
        app:layout_constraintGuide_percent=".01"
        android:orientation="horizontal" />
    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/main_bottom_gl"
        app:layout_constraintGuide_percent=".75"
        android:orientation="horizontal" />
    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/elem_bottom_gl"
        app:layout_constraintGuide_percent=".85"
        android:orientation="horizontal" />
    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/elem_bottom_gl2"
        app:layout_constraintGuide_percent="0.99"
        android:orientation="horizontal" />
    <SurfaceView
        android:id="@+id/cameraPreview"
        android:width="0dp"
        android:height="0dp"
        app:layout_constraintLeft_toLeftOf="@+id/main_left_gl"
        app:layout_constraintRight_toRightOf="@+id/main_right_gl"
        app:layout_constraintTop_toTopOf="@+id/main_top_gl"
        app:layout_constraintBottom_toBottomOf="@+id/main_bottom_gl" />
    <TextView
        android:id="@+id/txtResult"
        android:layout_centerInParent="true"
        android:gravity="center_horizontal"
        android:width="0dp"
        android:height="0dp"
        android:layout_marginTop="15dp"
        android:textSize="20sp"
        android:layout_below="@+id/cameraPreview"
        android:text="Please focus Camera to QR Code"
        app:layout_constraintLeft_toLeftOf="@+id/main_left_gl"
        app:layout_constraintRight_toRightOf="@+id/main_right_gl"
        app:layout_constraintTop_toTopOf="@+id/main_bottom_gl"
        app:layout_constraintBottom_toBottomOf="@+id/elem_bottom_gl" />
    <Button
        android:id="@+id/btnSubmit"
        android:text="Wagen ansehen"
        android:width="0dp"
        android:height="0dp"
        app:layout_constraintLeft_toLeftOf="@+id/main_left_gl"
        app:layout_constraintRight_toRightOf="@+id/button_left_gl"
        app:layout_constraintTop_toTopOf="@+id/elem_bottom_gl"
        app:layout_constraintBottom_toBottomOf="@+id/elem_bottom_gl2" />
    <Button
        android:id="@+id/btnReset"
        android:text="Reset QR-Code"
        android:width="0dp"
        android:height="0dp"
        app:layout_constraintLeft_toLeftOf="@+id/button_right_gl"
        app:layout_constraintRight_toRightOf="@+id/main_right_gl"
        app:layout_constraintTop_toTopOf="@+id/elem_bottom_gl"
        app:layout_constraintBottom_toBottomOf="@+id/elem_bottom_gl2" />
</android.support.constraint.ConstraintLayout>

对于每个安卓
android:layout\u width
android:layout\u height
必须添加,即使使用约束布局

xml布局中的问题从
SurfaceView
开始,您的视图中只定义了
android:width
android:height


因此,要解决这个问题,您需要将
android:width
更改为
android:layout\u width
,并将
android:height
更改为
android:layout\u height

,因为每个android
android:layou width
android:layout\u height
都必须添加,即使有约束布局

xml布局中的问题是从
SurfaceView
开始的,您只需要
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/main_left_gl"
        app:layout_constraintGuide_percent=".02"
        android:orientation="vertical" />
    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/main_right_gl"
        app:layout_constraintGuide_percent=".98"
        android:orientation="vertical" />
    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button_left_gl"
        app:layout_constraintGuide_percent=".48"
        android:orientation="vertical" />
    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button_right_gl"
        app:layout_constraintGuide_percent=".52"
        android:orientation="vertical" />
    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/main_top_gl"
        app:layout_constraintGuide_percent=".01"
        android:orientation="horizontal" />
    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/main_bottom_gl"
        app:layout_constraintGuide_percent=".75"
        android:orientation="horizontal" />
    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/elem_bottom_gl"
        app:layout_constraintGuide_percent=".85"
        android:orientation="horizontal" />
    <android.support.constraint.Guideline
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/elem_bottom_gl2"
        app:layout_constraintGuide_percent="0.99"
        android:orientation="horizontal" />
    <SurfaceView
        android:id="@+id/cameraPreview"
        android:width="0dp"
        android:height="0dp"
        app:layout_constraintLeft_toLeftOf="@+id/main_left_gl"
        app:layout_constraintRight_toRightOf="@+id/main_right_gl"
        app:layout_constraintTop_toTopOf="@+id/main_top_gl"
        app:layout_constraintBottom_toBottomOf="@+id/main_bottom_gl" />
    <TextView
        android:id="@+id/txtResult"
        android:layout_centerInParent="true"
        android:gravity="center_horizontal"
        android:width="0dp"
        android:height="0dp"
        android:layout_marginTop="15dp"
        android:textSize="20sp"
        android:layout_below="@+id/cameraPreview"
        android:text="Please focus Camera to QR Code"
        app:layout_constraintLeft_toLeftOf="@+id/main_left_gl"
        app:layout_constraintRight_toRightOf="@+id/main_right_gl"
        app:layout_constraintTop_toTopOf="@+id/main_bottom_gl"
        app:layout_constraintBottom_toBottomOf="@+id/elem_bottom_gl" />
    <Button
        android:id="@+id/btnSubmit"
        android:text="Wagen ansehen"
        android:width="0dp"
        android:height="0dp"
        app:layout_constraintLeft_toLeftOf="@+id/main_left_gl"
        app:layout_constraintRight_toRightOf="@+id/button_left_gl"
        app:layout_constraintTop_toTopOf="@+id/elem_bottom_gl"
        app:layout_constraintBottom_toBottomOf="@+id/elem_bottom_gl2" />
    <Button
        android:id="@+id/btnReset"
        android:text="Reset QR-Code"
        android:width="0dp"
        android:height="0dp"
        app:layout_constraintLeft_toLeftOf="@+id/button_right_gl"
        app:layout_constraintRight_toRightOf="@+id/main_right_gl"
        app:layout_constraintTop_toTopOf="@+id/elem_bottom_gl"
        app:layout_constraintBottom_toBottomOf="@+id/elem_bottom_gl2" />
</android.support.constraint.ConstraintLayout>
<?xml version="1.0" encoding="utf-8" ?> 
<resources>
 <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    </style>
</resources>
[Activity(Label = "DinexFeedback", MainLauncher = true, Icon = "@drawable/icon",Theme ="@style/AppTheme")]
public class MainActivity : Android.Support.V7.App.AppCompatActivity
{
   ...
}