我一直在尝试构建一个使用条形码扫描器的应用程序,我决定试用 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
那我在这里错过了什么?谢谢!!
答案 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);