我正在通过ZXIng IntentIntegrator使用QR码扫描仪制作应用程序。我可以使用以下代码
IntentIntegrator integrator = new IntentIntegrator(
HomeActivity.this);
integrator.initiateScan();
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult scanResult = IntentIntegrator.parseActivityResult(
requestCode, resultCode, intent);
if (scanResult != null) {
// handle scan result
Toast.makeText(getApplicationContext(),
"scan " + scanResult.getContents(), 1).show();
}
// else continue with any other code you need in the method
}
它在真实设备上运行。 但是当我尝试在我的其他设备上运行它时(三星注释2)。它给了我崩溃日志。
03-06 19:10:19.940: E/AndroidRuntime(10325): FATAL EXCEPTION: main
03-06 19:10:19.940: E/AndroidRuntime(10325): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.aztecbarcodereader.zxing.client.android.SCAN cat=[android.intent.category.DEFAULT] flg=0x4080000 }
03-06 19:10:19.940: E/AndroidRuntime(10325): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1580)
03-06 19:10:19.940: E/AndroidRuntime(10325): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1431)
03-06 19:10:19.940: E/AndroidRuntime(10325): at android.app.Activity.startActivityForResult(Activity.java:3446)
03-06 19:10:19.940: E/AndroidRuntime(10325): at android.app.Activity.startActivityForResult(Activity.java:3407)
03-06 19:10:19.940: E/AndroidRuntime(10325): at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:817)
03-06 19:10:19.940: E/AndroidRuntime(10325): at com.aztecbarcodereader.zxing.integration.android.IntentIntegrator.startActivityForResult(IntentIntegrator.java:290)
03-06 19:10:19.940: E/AndroidRuntime(10325): at com.aztecbarcodereader.zxing.integration.android.IntentIntegrator.initiateScan(IntentIntegrator.java:274)
03-06 19:10:19.940: E/AndroidRuntime(10325): at com.aztecbarcodereader.zxing.integration.android.IntentIntegrator.initiateScan(IntentIntegrator.java:209)
03-06 19:10:19.940: E/AndroidRuntime(10325): at com.raa.jwelarydemo.HomeActivity$8.onClick(HomeActivity.java:241)
03-06 19:10:19.940: E/AndroidRuntime(10325): at android.view.View.performClick(View.java:4223)
03-06 19:10:19.940: E/AndroidRuntime(10325): at android.view.View$PerformClick.run(View.java:17275)
03-06 19:10:19.940: E/AndroidRuntime(10325): at android.os.Handler.handleCallback(Handler.java:615)
03-06 19:10:19.940: E/AndroidRuntime(10325): at android.os.Handler.dispatchMessage(Handler.java:92)
03-06 19:10:19.940: E/AndroidRuntime(10325): at android.os.Looper.loop(Looper.java:137)
03-06 19:10:19.940: E/AndroidRuntime(10325): at android.app.ActivityThread.main(ActivityThread.java:4898)
03-06 19:10:19.940: E/AndroidRuntime(10325): at java.lang.reflect.Method.invokeNative(Native Method)
03-06 19:10:19.940: E/AndroidRuntime(10325): at java.lang.reflect.Method.invoke(Method.java:511)
03-06 19:10:19.940: E/AndroidRuntime(10325): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
03-06 19:10:19.940: E/AndroidRuntime(10325): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
03-06 19:10:19.940: E/AndroidRuntime(10325): at dalvik.system.NativeStart.main(Native Method)
为什么我会收到此异常?
当我尝试使用此设备上的任何市场应用程序来使用条形码时,还有一件事情也存在同样的问题。 我想我必须在我的特定设备上进行一些设置。但我找不到解决方案。
答案 0 :(得分:2)
您从哪里获得正在使用的jar文件?好像它不是官方的ZXing。
注意您对意图的行动
com.aztecbarcodereader.zxing.client.android.SCAN
这与官方ZXing应用程序使用的动作字符串不匹配,这是真正的:
com.google.zxing.client.android.SCAN
如果您修改了IntentIntegrator.java文件,则需要还原更改并使用原始源代码。如果你没有修改它,那么你需要回到ZXing官方网站并下载它的新副本,因为你的那个似乎是由其他人制作的(错误的)。
你可以在这里下载官方文件:https://code.google.com/p/zxing/downloads/detail?name=ZXing-2.1.zip一旦你把zip文件打开,android-integration
里面就是你需要的jar文件。