ZXingTestActivity - 条形码扫描程序 - 未找到处理Intent的活动{act = com.google.zxing.client.android.SCAN(有附加内容)}

时间:2012-08-09 13:58:16

标签: android-emulator

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

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

点击扫描产品按钮后,它会在LogCat中显示此堆栈,并且应用程序需要关闭:

08-09 13:10:47.542: E/AndroidRuntime(681): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.google.zxing.client.android.SCAN (has extras) }
08-09 13:10:47.542: E/AndroidRuntime(681):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1545)
08-09 13:10:47.542: E/AndroidRuntime(681):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1416)
08-09 13:10:47.542: E/AndroidRuntime(681):  at android.app.Activity.startActivityForResult(Activity.java:3351)
08-09 13:10:47.542: E/AndroidRuntime(681):  at 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):  at android.view.View.performClick(View.java:4084)
08-09 13:10:47.542: E/AndroidRuntime(681):  at android.view.View$PerformClick.run(View.java:16966)
08-09 13:10:47.542: E/AndroidRuntime(681):  at android.os.Handler.handleCallback(Handler.java:615)
08-09 13:10:47.542: E/AndroidRuntime(681):  at android.os.Handler.dispatchMessage(Handler.java:92)
08-09 13:10:47.542: E/AndroidRuntime(681):  at android.os.Looper.loop(Looper.java:137)
08-09 13:10:47.542: E/AndroidRuntime(681):  at android.app.ActivityThread.main(ActivityThread.java:4745)
08-09 13:10:47.542: E/AndroidRuntime(681):  at java.lang.reflect.Method.invokeNative(Native Method)
08-09 13:10:47.542: E/AndroidRuntime(681):  at java.lang.reflect.Method.invoke(Method.java:511)
08-09 13:10:47.542: E/AndroidRuntime(681):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
08-09 13:10:47.542: E/AndroidRuntime(681):  at 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

那我在这里错过了什么?谢谢!!

3 个答案:

答案 0 :(得分:16)

只需将此代码添加到您的清单文件中,并在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" />

答案 1 :(得分:1)

我已经修复了您可以找到解决方案here

的问题

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

答案 2 :(得分:1)

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

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);