我得到了:android.content.ActivityNotFoundException:找不到处理intent的活动{act=com.google.zxing.client.android.SCAN cat=[android.intent.category.DEFAULT]flg=0x4080000 pkg=com.gougle.zxing.client.android}当我运行与zxing条形码扫描仪集成的自己的应用程序时。没有logcat。
首先,我从zxing下载了源代码,并将其构建到一个应用程序中,运行良好,然后我将其转换为应用程序的库并运行我的应用程序,然后出现上面的错误。以下是如何将zxing条形码扫描仪变成我的应用程序的库:
I。在myapp的AndroidManifest.xml上,添加
<activity android:name="com.google.zxing.client.android.CaptureActivity"
android:screenOrientation="landscape"
android:clearTaskOnLaunch="true"
android:stateNotNeeded="true"
android:configChanges="orientation|keyboardHidden"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden">
<intent-filter>
<action android:name="com.google.zxing.client.android.SCAN"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
II。在myapp的MainActivity.java上,我有一段代码:
String package_name="com.google.zxing.client.android";
Intent iScan = new Intent(package_name+".SCAN");
iScan.setPackage(package_name);
iScan.addCategory(Intent.CATEGORY_DEFAULT);
iScan.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
iScan.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
iScan.putExtra("SCAN_WIDTH", 420);
iScan.putExtra("SCAN_HEIGHT", 420);
iScan.putExtra("RESULT_DISPLAY_DURATION_MS", 3000L);
iScan.putExtra("SCAN_MODE", "QR_CODE_MODE");
iScan.putExtra("PROMPT_MESSAGE", "Scan the Contact");
startActivityForResult(iScan, 0);
III。在我的项目属性->Android,
add com.google.xing.client.android as lib and copy
com.google.xing.client.android.captureactivity.jar core.jar到我的应用程序的libs目录
如果通过Intent进行集成,则不会将android/
甚至core/
添加到项目中。事实上,这是非常不鼓励的,主要是因为你在上面发布的内容:你的应用程序说它可以处理条形码扫描仪应该处理的Intents。这不好——你可能会拦截对我们应用程序的呼叫。
既然您已经通过Intent进行了集成,那么就不必为这些而烦恼了。您所需要的只是android-integration/
中的内容。看见http://code.google.com/p/zxing/wiki/ScanningViaIntent
如果你使用上面描述的IntentIntegrator
,它将处理应用程序的安装,这样你就不会被上面显示的ActivityNotFoundException
绊倒。
您可以通过在手机中安装Google Goggles或任何支持条形码扫描的应用程序(Zxing条形码扫描仪)来解决此错误。当你尝试启动活动时,它会通过这个应用程序打开,并将数据输入你的android应用程序。
这对我有效:)