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



我得到了: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应用程序。

这对我有效:)

最新更新