首先,我想告诉你我已尽我所能。接下来就像互联网上的10个教程和堆叠的10个线程。仍然没有成功。
我知道你们推荐使用意图扫描的人,但在我的情况下它不是一个选项,我需要在我的应用程序中使用它。
我已经下载了zxing库(2.1)并跟随了this tutorial
当我在我的Galaxy S3或Galaxy Tab 10.1上运行此代码作为调试时,程序在冻结20秒后崩溃,当我点击应该开始结果意图的按钮时:com.google.zxing.client.android.SCAN
或{{ 1}}。
请注意,我已经从条形码扫描仪应用程序中复制了所有资源,如哔声,xml文件等。
我的代码如下:
MainActivity.java
com.google.zxing.client.android.CaptureActivity
Android清单
package com.example.philipscan;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void scanNow(View view)
{
Log.e("test", "button works!");
Intent intent = new Intent("com.google.zxing.client.android.CaptureActivity");
startActivityForResult(intent, 3);
}
public void onActivityResult(int requestCode, int resultCode, Intent intent)
{
Log.e("xZing", "Back");
if (requestCode == 3)
{
if (resultCode == RESULT_OK)
{
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
Log.e("xZing", "contents: "+contents+" format: "+format);
// Handle successful scan
}
else if (resultCode == RESULT_CANCELED)
{
// Handle cancel
Log.e("xZing", "Cancelled");
}
}
}
}
我的SRC文件夹
我非常感谢能得到的所有帮助。
答案 0 :(得分:1)
尝试以另一种方式创建Intent
Intent scanIntent = new Intent("com.google.zxing.client.android.SCAN");
scanIntent.putExtra("SCAN_MODE", "ONE_D_MODE");
然后像往常一样使用startActivityForResult()。 ONE_D_MODE是扫描像Code39这样的1D条形码的模式。
答案 1 :(得分:0)
删除您从我们项目中复制的所有代码。没有必要,你不理解它,并且不应该在许可下以这种方式重复使用:https://code.google.com/p/zxing/wiki/LicenseQuestions
特别是您不应该复制清单,也不允许复制UI。
相反,它更简单,因为你似乎试图使用Intents:https://code.google.com/p/zxing/wiki/ScanningViaIntent