找不到处理意图的活动{act = com.google.zxing.client.android.SCAN cat =

时间:2012-08-31 17:39:33

标签: android barcode zxing

我得到了: android.content.ActivityNotFoundException:找不到处理意图的活动{act = com.google.zxing.client.android.SCAN cat = [android.intent.category.DEFAULT] flg = 0x4080000 pkg = com.google.zxing.client。安卓}  当我运行自己的应用程序与zxing条码扫描器集成。没有logcat。

首先,我从zxing下载了源代码并将其构建到一个应用程序并运行正常,然后我将其转换为我的应用程序的库并运行我的应用程序然后得到上面的错误。以下是如何将zxing条形码扫描器转换为我的应用程序的库:

予。在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。在我的项目属性 - &gt; Android,

add  com.google.xing.client.android as lib and copy 

com.google.xing.client.android.captureactivity.jar core.jar to libs dir of my app

2 个答案:

答案 0 :(得分:1)

如果您通过Intent进行集成,则不会将android/甚至core/添加到项目中。事实上,这是非常气馁的,主要是因为你上面发布的确切内容:你的应用程序说它可以处理Barcode Scanner应该处理的Intents。那不行 - 你可能会拦截对我们应用程序的调用。

由于您已经通过Intent进行集成,因此不要为此烦恼。您所需要的只是android-integration/中的内容。见http://code.google.com/p/zxing/wiki/ScanningViaIntent

如果您按照此处的说明使用IntentIntegrator,则会处理安装应用的问题,因此您不会绊倒上面显示的ActivityNotFoundException

答案 1 :(得分:-1)

您可以通过在移动设备或任何类型的支持条形码扫描应用程序(Zxing条形码扫描仪)中安装Google Goggles来解决此错误。当您尝试启动活动时,它将通过此​​应用程序打开并将数据提供到您的Android应用程序中。

这对我有用:)