Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.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
Java android studio中出现LogCat错误,运行时应用程序崩溃_Java_Android - Fatal编程技术网

Java android studio中出现LogCat错误,运行时应用程序崩溃

Java android studio中出现LogCat错误,运行时应用程序崩溃,java,android,Java,Android,在这个片段中,我添加了ZXingscanner视图,代码没有显示任何错误,但当我运行应用程序时,它每次都会崩溃并停止。这个应用程序有3个选项卡,每个选项卡中都有片段,其中一个选项卡的片段就是这个扫描仪,但这个视图由于某种原因破坏了应用程序。下面是我的片段类的代码: import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.os.V

在这个片段中,我添加了ZXingscanner视图,代码没有显示任何错误,但当我运行应用程序时,它每次都会崩溃并停止。这个应用程序有3个选项卡,每个选项卡中都有片段,其中一个选项卡的片段就是这个扫描仪,但这个视图由于某种原因破坏了应用程序。下面是我的片段类的代码:

import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Vibrator;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;

import com.google.zxing.BarcodeFormat;
import com.google.zxing.Result;
import com.hist_area.imeda.histarea.R;

import java.util.ArrayList;
import java.util.List;

import me.dm7.barcodescanner.zxing.ZXingScannerView;


public class EmptyFragment extends Fragment implements ZXingScannerView.ResultHandler {
    public static EmptyFragment create() {
        return new EmptyFragment();
    }
    Vibrator vibrator;


    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }

        private ZXingScannerView mScannerView;
        private LinearLayout qrCameraLayout;

        @Override
        public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle
        savedInstanceState)
        {
            View v = inflater.inflate(R.layout.fragment_camera, container, false);

            qrCameraLayout = (LinearLayout) v.findViewById(R.id.camera_preview);
            mScannerView = new ZXingScannerView(getActivity().getApplicationContext());
            mScannerView.setLayoutParams(new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.MATCH_PARENT,
                    LinearLayout.LayoutParams.MATCH_PARENT));
            qrCameraLayout.addView(mScannerView);

            List<BarcodeFormat> formats = new ArrayList<>();
            formats.add(BarcodeFormat.QR_CODE);
            mScannerView.setFormats(formats);

            return v;
        }

        @Override
        public void onResume ()
        {
            super.onResume();
            mScannerView.setResultHandler(this); // Register ourselves as a handler for scan results.
            mScannerView.startCamera();          // Start camera on resume
        }

        @Override
        public void onPause ()
        {
            super.onPause();
            mScannerView.stopCamera();
        }

        @Override
        public void handleResult ( final Result result)
        {
            vibrator.vibrate(369);
            Log.e("handleresult", result.getText());
            //Hold result
            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
            builder.setTitle("             Scan Result");
            builder.setPositiveButton("Scan Again", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    mScannerView.resumeCameraPreview(EmptyFragment.this);
                }
            });
            builder.setNeutralButton("Main Page", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    mScannerView.stopCamera();
                    MainPageFragment.create();
                }


            });

            builder.setMessage(result.getText());
            AlertDialog alertDialog = builder.create();
            alertDialog.show();
        }


}

您尚未在布局文件中为此元素提供id。这样做:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/camera_preview" <!-- This was missing -->
>
 <View
    android:id="@+id/camera_scanner"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
 </LinearLayout> 

您尚未在布局文件中为此元素提供id。这样做:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/camera_preview" <!-- This was missing -->
>
 <View
    android:id="@+id/camera_scanner"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
 </LinearLayout> 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/camera_preview" <!-- This was missing -->
>
 <View
    android:id="@+id/camera_scanner"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
 </LinearLayout>