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