Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.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 扫描条形码Mobile vision API时出错? public类MainActivity扩展了AppCompatActivity{ 文本视图; 位图; 按钮btn; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txt=(TextView)findViewById(R.id.txt); ImageView myImageView=(ImageView)findViewById(R.id.imgview); myBitmap=BitmapFactory.decodeResource( getApplicationContext().getResources(), R.可绘制条形码); 设置图像位图(myBitmap); btn=(按钮)findViewById(R.id.Button); btn.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ bar(); } }); } 公共空白栏(){ 条形码检测器= 新的条形码检测器.Builder(getApplicationContext()) .setBarcodeFormats(条形码.数据|矩阵|条形码.二维码) .build(); 如果(!detector.isOperational()){ txt.setText(“无法设置检测器!”); 返回; } Frame Frame=new Frame.Builder().setBitmap(myBitmap.build(); SparseArray条码=检测器。检测(帧); 条形码thisCode=条形码。值位于(0); txt.setText(thisCode.rawValue); Toast.makeText(getApplicationContext(),thisCode.rawValue.toString(),Toast.LENGTH_SHORT).show(); } }_Java_Android_Android Vision - Fatal编程技术网

Java 扫描条形码Mobile vision API时出错? public类MainActivity扩展了AppCompatActivity{ 文本视图; 位图; 按钮btn; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txt=(TextView)findViewById(R.id.txt); ImageView myImageView=(ImageView)findViewById(R.id.imgview); myBitmap=BitmapFactory.decodeResource( getApplicationContext().getResources(), R.可绘制条形码); 设置图像位图(myBitmap); btn=(按钮)findViewById(R.id.Button); btn.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ bar(); } }); } 公共空白栏(){ 条形码检测器= 新的条形码检测器.Builder(getApplicationContext()) .setBarcodeFormats(条形码.数据|矩阵|条形码.二维码) .build(); 如果(!detector.isOperational()){ txt.setText(“无法设置检测器!”); 返回; } Frame Frame=new Frame.Builder().setBitmap(myBitmap.build(); SparseArray条码=检测器。检测(帧); 条形码thisCode=条形码。值位于(0); txt.setText(thisCode.rawValue); Toast.makeText(getApplicationContext(),thisCode.rawValue.toString(),Toast.LENGTH_SHORT).show(); } }

Java 扫描条形码Mobile vision API时出错? public类MainActivity扩展了AppCompatActivity{ 文本视图; 位图; 按钮btn; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txt=(TextView)findViewById(R.id.txt); ImageView myImageView=(ImageView)findViewById(R.id.imgview); myBitmap=BitmapFactory.decodeResource( getApplicationContext().getResources(), R.可绘制条形码); 设置图像位图(myBitmap); btn=(按钮)findViewById(R.id.Button); btn.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ bar(); } }); } 公共空白栏(){ 条形码检测器= 新的条形码检测器.Builder(getApplicationContext()) .setBarcodeFormats(条形码.数据|矩阵|条形码.二维码) .build(); 如果(!detector.isOperational()){ txt.setText(“无法设置检测器!”); 返回; } Frame Frame=new Frame.Builder().setBitmap(myBitmap.build(); SparseArray条码=检测器。检测(帧); 条形码thisCode=条形码。值位于(0); txt.setText(thisCode.rawValue); Toast.makeText(getApplicationContext(),thisCode.rawValue.toString(),Toast.LENGTH_SHORT).show(); } },java,android,android-vision,Java,Android,Android Vision,barcode.png是: 每当我将此作为位图运行应用程序时,它就会崩溃,导致越界数组0异常。我不知道为什么会发生这种情况,但应用程序一直在崩溃 它可以检测到方形条形码,但它无法检测到这一个。这里的问题是什么 LOGCAT:条形码数组是一个SparseArray,这意味着返回值中可能存在间隙,也可能为空 您应该迭代这些键,然后从SparseArray检索值,如下所示: public class MainActivity extends AppCompatActivity { TextV

barcode.png
是:

每当我将此作为位图运行应用程序时,它就会崩溃,导致
越界数组0
异常。我不知道为什么会发生这种情况,但应用程序一直在崩溃

它可以检测到方形条形码,但它无法检测到这一个。这里的问题是什么


LOGCAT:

条形码数组是一个
SparseArray
,这意味着返回值中可能存在间隙,也可能为空

您应该迭代这些键,然后从
SparseArray
检索值,如下所示:

public class MainActivity extends AppCompatActivity {
    TextView txt;
    Bitmap myBitmap;
    Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        txt = (TextView)findViewById(R.id.txt);
        ImageView myImageView = (ImageView) findViewById(R.id.imgview);
         myBitmap = BitmapFactory.decodeResource(
                getApplicationContext().getResources(),
                R.drawable.barcode);
        myImageView.setImageBitmap(myBitmap);
         btn = (Button) findViewById(R.id.button);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                bar();
            }
        });

    }

    public void bar(){
        BarcodeDetector detector =
                new BarcodeDetector.Builder(getApplicationContext())
                        .setBarcodeFormats(Barcode.DATA_MATRIX | Barcode.QR_CODE)
                        .build();
        if(!detector.isOperational()){
            txt.setText("Could not set up the detector!");
            return;
        }
        Frame frame = new Frame.Builder().setBitmap(myBitmap).build();
        SparseArray<Barcode> barcodes = detector.detect(frame);
        Barcode thisCode = barcodes.valueAt(0);
        txt.setText(thisCode.rawValue);
        Toast.makeText(getApplicationContext(), thisCode.rawValue.toString(), Toast.LENGTH_SHORT).show();

    }
}
for(int i=0;i
条形码数组是一个
SparseArray
,这意味着返回值中可能存在间隙,也可能为空

您应该迭代这些键,然后从
SparseArray
检索值,如下所示:

public class MainActivity extends AppCompatActivity {
    TextView txt;
    Bitmap myBitmap;
    Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        txt = (TextView)findViewById(R.id.txt);
        ImageView myImageView = (ImageView) findViewById(R.id.imgview);
         myBitmap = BitmapFactory.decodeResource(
                getApplicationContext().getResources(),
                R.drawable.barcode);
        myImageView.setImageBitmap(myBitmap);
         btn = (Button) findViewById(R.id.button);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                bar();
            }
        });

    }

    public void bar(){
        BarcodeDetector detector =
                new BarcodeDetector.Builder(getApplicationContext())
                        .setBarcodeFormats(Barcode.DATA_MATRIX | Barcode.QR_CODE)
                        .build();
        if(!detector.isOperational()){
            txt.setText("Could not set up the detector!");
            return;
        }
        Frame frame = new Frame.Builder().setBitmap(myBitmap).build();
        SparseArray<Barcode> barcodes = detector.detect(frame);
        Barcode thisCode = barcodes.valueAt(0);
        txt.setText(thisCode.rawValue);
        Toast.makeText(getApplicationContext(), thisCode.rawValue.toString(), Toast.LENGTH_SHORT).show();

    }
}
for(int i=0;i
你能发布logcat吗?@prasad,我已经添加了logcat。请在问题中发布,而不是作为某个场外文档共享网站的链接。而不是作为一个“pdf”文件,大声呼喊!你能发布logcat吗?@prasad,我已经添加了logcat。请在问题中发布它,而不是作为某个场外文档共享站点的链接。而不是作为一个“pdf”文件,大声呼喊!