12

我一直在尝试构建一个使用条形码扫描仪的应用程序,我决定尝试在ZXing-2.0.zip中找到的示例,所以我进入了我的 eclipse 并将androidtest应用程序作为现有的 android 应用程序导入到我的工作区,代码编译正常,没有错误。

现在,在我的 AVD 上运行应用程序后,所有按钮都正确显示

单击扫描产品按钮时,它会在 LogCat 中为我提供此堆栈,并且应用程序需要关闭:

08-09 13:10:47.542: E/AndroidRuntime(681): android.content.ActivityNotFoundException: 没有找到处理 Intent { act=com.google.zxing.client.android.SCAN (has extras) }
08-09 13:10:47.542: E/AndroidRuntime(681): 在 android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1545)
08-09 13:10:47.542: E/AndroidRuntime(681): 在 android.app.Instrumentation.execStartActivity(Instrumentation.java:1416)
08-09 13:10:47.542: E/AndroidRuntime(681): 在 android.app.Activity.startActivityForResult(Activity.java:3351)
08-09 13:10:47.542: E/AndroidRuntime(681): 在 android.app.Activity.startActivityForResult(Activity.java:3312)
08-09 13:10:47.542: E/AndroidRuntime(681): at com.google.zxing.client.androidtest.ZXingTestActivity$3.onClick(ZXingTestActivity.java:153)
08-09 13:10:47.542: E/AndroidRuntime(681): 在 android.view.View.performClick(View.java:4084)
08-09 13:10:47.542: E/AndroidRuntime(681): 在 android.view.View$PerformClick.run(View.java:16966)
08-09 13:10:47.542: E/AndroidRuntime(681): 在 android.os.Handler.handleCallback(Handler.java:615)
08-09 13:10:47.542: E/AndroidRuntime(681): 在 android.os.Handler.dispatchMessage(Handler.java:92)
08-09 13:10:47.542: E/AndroidRuntime(681): 在 android.os.Looper.loop(Looper.java:137)
08-09 13:10:47.542: E/AndroidRuntime(681): 在 android.app.ActivityThread.main(ActivityThread.java:4745)
08-09 13:10:47.542: E/AndroidRuntime(681): 在 java.lang.reflect.Method.invokeNative(Native Method)
08-09 13:10:47.542: E/AndroidRuntime(681): 在 java.lang.reflect.Method.invoke(Method.java:511)
08-09 13:10:47.542: E/AndroidRuntime(681): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
08-09 13:10:47.542: E/AndroidRuntime(681): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-09 13:10:47.542: E/AndroidRuntime(681): at dalvik.system.NativeStart.main(Native Method)

这很奇怪,因为他所说的活动应该是 ZXingTestActivity

那么我在这里缺少什么?谢谢!!

4

3 回答 3

19

只需将此代码添加到您的清单文件中,并在 Application 标记中。

<activity
    android:name="com.google.zxing.client.android.CaptureActivity"
    android:configChanges="orientation|keyboardHidden"
    android:screenOrientation="landscape"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    android:windowSoftInputMode="stateAlwaysHidden" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
        <action android:name="com.google.zxing.client.android.SCAN" />

        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

现在添加权限(如果尚未添加到文件顶部)

 <uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
于 2013-03-07T15:32:28.500 回答
2

我解决了这个问题。你可以看看这个页面“ http://pastebin.com/J5EV72Cu ”。
错误编码

String packageString = "com.google.zxing.client.android";
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.setPackage(packageString);
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 123);

解决编码

String packageString = "com.yourapplication.packagename";
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.setPackage(packageString);
intent.putExtra("SCAN_MODE", "SCAN_MODE");
startActivityForResult(intent, 123);
于 2014-06-05T04:49:38.327 回答
1

我已经解决了问题,您可以在此处找到解决方案

您需要做的是将提到的部分添加到清单文件中。祝你好运!!

于 2012-08-10T08:20:23.053 回答