如何解决这个NoClassDefFoundError.我已经在我的应用程序中集成了Zxing,每件事都运行良好.然后我更新了我的sdk和eclipse插件,当我运行项目时,日志说
03-27 17:27:45.173: E/AndroidRuntime(8917): FATAL EXCEPTION: main
03-27 17:27:45.173: E/AndroidRuntime(8917): java.lang.ExceptionInInitializerError
03-27 17:27:45.173: E/AndroidRuntime(8917): at java.lang.Class.newInstanceImpl(Native Method)
03-27 17:27:45.173: E/AndroidRuntime(8917): at java.lang.Class.newInstance(Class.java:1429)
03-27 17:27:45.173: E/AndroidRuntime(8917): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
03-27 17:27:45.173: E/AndroidRuntime(8917): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
03-27 17:27:45.173: E/AndroidRuntime(8917): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
03-27 17:27:45.173: E/AndroidRuntime(8917): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
03-27 17:27:45.173: E/AndroidRuntime(8917): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
03-27 17:27:45.173: E/AndroidRuntime(8917): at android.os.Handler.dispatchMessage(Handler.java:99)
03-27 17:27:45.173: E/AndroidRuntime(8917): at android.os.Looper.loop(Looper.java:123)
03-27 17:27:45.173: E/AndroidRuntime(8917): at android.app.ActivityThread.main(ActivityThread.java:4627)
03-27 17:27:45.173: E/AndroidRuntime(8917): at java.lang.reflect.Method.invokeNative(Native Method)
03-27 17:27:45.173: E/AndroidRuntime(8917): at java.lang.reflect.Method.invoke(Method.java:521)
03-27 17:27:45.173: E/AndroidRuntime(8917): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
03-27 17:27:45.173: …Run Code Online (Sandbox Code Playgroud) 我已设法使用此处的答案将相机预览旋转为肖像:http: //code.google.com/p/zxing/issues/detail?id = 178#c46
然而,预览本身是拉伸/扭曲的 - 高度似乎是拉伸以填充框(但可能是宽度对于屏幕太大而且它被压扁以适应)
有没有办法"包装"内容而不是让它拉伸以适应表面视图?
编辑:我通过改变'CameraConfigurationManager'中的'findBestPreviewSizeValue'方法并反转X和Y点(对于下面指针的sean owen!)进行排序,这里是代码:
private static Point findBestPreviewSizeValue(CharSequence previewSizeValueString,
Point screenResolution) {
int bestX = 0;
int bestY = 0;
int diff = Integer.MAX_VALUE;
for (String previewSize : COMMA_PATTERN.split(previewSizeValueString)) {
previewSize = previewSize.trim();
int dimPosition = previewSize.indexOf('x');
if (dimPosition < 0) {
Log.w(TAG, "Bad preview-size: " + previewSize);
continue;
}
int newX;
int newY;
try {
newY = Integer.parseInt(previewSize.substring(0, dimPosition));
newX = Integer.parseInt(previewSize.substring(dimPosition + 1));
//original:
//newX = Integer.parseInt(previewSize.substring(0, dimPosition));
//newY = …Run Code Online (Sandbox Code Playgroud) 我正在使用Zxing库在我的Android应用程序中生成条形码
Intent intent = new Intent("com.google.zxing.client.android.ENCODE");
intent.putExtra("ENCODE_FORMAT", "UPC_A");
intent.putExtra("ENCODE_DATA", "55555555555");
startActivityForResult(intent,0);
Run Code Online (Sandbox Code Playgroud)
反正有没有将生成的图像保存在我的应用程序中,它正在调用Zxing?我看到onActivityResult我的意图为null.
在此先感谢您的帮助
我目前正在开发一种扫描仪,可以读取一张图像中的多个QR码.我设法读取图像中的QR码,但它给了我不一致的结果.假设图像中有4个QR码,有时我可以读取2个,有时3个或仅1个.与原始扫描仪(ZXing扫描仪)不同,它可以快速解码.在我的情况下,我必须确保有足够的光线,图像不会模糊解码.
我正在使用它QRCodeMultiReader来解码图像.目前正在使用ZXingLibrary来创建应用程序.
以下是我的代码片段:
public void onPictureTaken(byte[] data, Camera camera) {
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inMutable = true;
Bitmap bitmap = BitmapFactory
.decodeByteArray(data, 0, data.length, opt);
Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>();
hints.put(DecodeHintType.TRY_HARDER, Boolean.TRUE);
LuminanceSource source = new RGBLuminanceSource(bitmap);
QRCodeMultiReader multiReader = new QRCodeMultiReader();
Result[] results = multiReader.decodeMultiple(new BinaryBitmap(
new HybridBinarizer(source)), hints);
}
Run Code Online (Sandbox Code Playgroud) 我刚刚导入的斑马线库在我的应用程序,我知道如何设置的putExtra功能来扫描QR码条码:
INTENT = new Intent("com.google.zxing.client.android.SCAN");
INTENT.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(INTENT, 0);
Run Code Online (Sandbox Code Playgroud)
如果我想扫描一维条码:
INTENT = new Intent("com.google.zxing.client.android.SCAN");
INTENT.putExtra("SCAN_MODE", "PRODUCT_MODE");
startActivityForResult(INTENT, 0);
Run Code Online (Sandbox Code Playgroud)
但是如何让App能够同时扫描?(1D和2D条形码).
谢谢!马尔科
当应用程序的主视图在屏幕上时,我需要在我的Android应用程序中连续扫描QR码.主视图应包含带摄像头预览的窗口,但不包含全屏摄像头预览.
用法示例:包含扫描的QR码列表和相机预览的主视图.扫描新的QR码时,会将其添加到列表中.
可能吗?
关于使用Zxing的一些问题......
我编写以下代码来从图像中读取条形码:
public class BarCodeDecode
{
/**
* @param args
*/
public static void main(String[] args)
{
try
{
String tmpImgFile = "D:\\FormCode128.TIF";
Map<DecodeHintType,Object> tmpHintsMap = new EnumMap<DecodeHintType, Object>(DecodeHintType.class);
tmpHintsMap.put(DecodeHintType.TRY_HARDER, Boolean.TRUE);
tmpHintsMap.put(DecodeHintType.POSSIBLE_FORMATS, EnumSet.allOf(BarcodeFormat.class));
tmpHintsMap.put(DecodeHintType.PURE_BARCODE, Boolean.FALSE);
File tmpFile = new File(tmpImgFile);
String tmpRetString = BarCodeUtil.decode(tmpFile, tmpHintsMap);
//String tmpRetString = BarCodeUtil.decode(tmpFile, null);
System.out.println(tmpRetString);
}
catch (Exception tmpExpt)
{
System.out.println("main: " + "Excpt err! (" + tmpExpt.getMessage() + ")");
}
System.out.println("main: " + "Program end.");
}
}
public class BarCodeUtil
{
private static …Run Code Online (Sandbox Code Playgroud) 我对zxing onActivityResult()有一些问题.
正如您在代码中看到的那样,我按照https://code.google.com/p/zxing/wiki/ScanningViaIntent中的说明正确调用了新意图.
问题是如何在Fragment中捕获onActivityResult(),因为我需要在Fragmnet中而不是在Activity中使用这些数据?
package com.example.testingcodereading;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
public class MainFragment extends Fragment {
private Button mButtonXZing;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState){
View v = inflater.inflate(R.layout.fragment_main, parent, false);
mButtonXZing = (Button) v.findViewById(R.id.button_xzing);
mButtonXZing.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
IntentIntegrator integrator = new IntentIntegrator(getActivity());
integrator.initiateScan();
}
});
return v;
}
@Override
public void onActivityResult(int requestCode, int …Run Code Online (Sandbox Code Playgroud) 我已经在我的iOS应用程序中实现了ZXing,但是我怀疑它的可维护性,因为不久前它宣布ZXing到iOS即将退休:
我还读到可能与新手机iPhone 5S存在兼容性问题.
在Zxing-library上运行Xcode的静态代码分析也会发现内存错误,我不确定这些错误是否是误报,但它们让我更加怀疑Zxing.此外,与其他条码扫描仪相比,Zxing的性能低于其他条码.
所以我的问题是,最好的选择是什么?我听到很多关于Zbar的好东西,但是我不确定它是如何更新的.
我是Zxing的新手.我在我的Android应用程序中使用zxing进行条形码转换.任何人都可以指导我如何将zxing包含到Android设备中.