Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中检测ZXing条形码扫描仪时发生ClassNotFoundException_Android_Zxing - Fatal编程技术网

在android中检测ZXing条形码扫描仪时发生ClassNotFoundException

在android中检测ZXing条形码扫描仪时发生ClassNotFoundException,android,zxing,Android,Zxing,我使用下面几行来检测ZXing条形码扫描仪,但它引发了名为ClassNotFoundException的异常 try{ Intent intent = new Intent("com.google.zxing.client.android.SCAN"); startActivityForResult(intent, 0); } catch(Exception e) { //calling Alert message which says to download the appli

我使用下面几行来检测ZXing条形码扫描仪,但它引发了名为
ClassNotFoundException
的异常

try{
  Intent intent = new Intent("com.google.zxing.client.android.SCAN");

   startActivityForResult(intent, 0);

}
catch(Exception e)
{
 //calling Alert message which says to download the application
}
ClassNotFoundException
未找到saying
com.google.zxing.client.android.CaptureActivity
。但我不明白为什么即使我将其放入try,catch块中,也无法处理此异常

完整代码:

我还尝试了使用ISintentavable(上下文,意图)方法,但仍然得到了相同的错误

 try{
      Intent intent = new Intent("com.google.zxing.client.android.SCAN");


      if(isIntentAvailable(this,  intent)){

        runOnUiThread(new Runnable() {
        public void run() {
        pd.dismiss();
        }
        });

        startActivityForResult(intent, 0);
        }

        else{
         AlertDialog diaBox = installDialogBox();

         diaBox.show();
        }
        }
        catch (Exception e) {
        pd.dismiss();
        Log.e("in Exception","Exception");
        e.printStackTrace();

        }
方法:检查应用程序是否已安装

 public static boolean isIntentAvailable(Context context, Intent intent) {
final PackageManager packageManager =  context.getPackageManager();
List<ResolveInfo> list =packageManager.queryIntentActivities(intent,PackageManager.MATCH_DEFAULT_ONLY);

return list.size() > 0;
            }

请回复。

在呼叫之前,请检查意图是否可用

public static boolean isIntentAvailable(Context context, Intent intent) {
    final PackageManager packageManager = context.getPackageManager();
      List<ResolveInfo> list =
            packageManager.queryIntentActivities(intent,
                    PackageManager.MATCH_DEFAULT_ONLY);
    return list.size() > 0;
}

需要查询是否有此应用程序。而且这不是为了捕捉异常

Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
List<ResolveInfo> list = getPackageManager().queryIntentActivities( intent, 0 );
Intent-Intent=newintent(“com.google.zxing.client.android.SCAN”);
List List=getPackageManager().queryInputActivities(intent,0);

list.size()>0,表示存在目标应用程序。

您正在通过
Intent
进行集成。但我猜您也尝试在项目中包含我们的代码和部分清单。不要这样做。这是不必要的,并且会导致类似这样的错误,因为你也在告诉Android,代码在你的应用程序中。这不是,也不应该是。

这个问题在很多方面都得到了答案。Zxing有时会让人很痛苦。跟随那些帮助过别人的老帖子,重做你的整合,我相信你已经错过了一些步骤


而且

如果我使用了上述代码,如果应用程序未安装在我的设备中,我的应用程序就会崩溃,并说明上述错误。如果应用程序安装在我的设备中,它工作正常。我不明白为什么我不能处理异常异常异常是
ClassNotFoundException
,而不是
ActivityNotFoundException
。这不是问题所在。异常是
ClassNotFoundException
,而不是
ActivityNotFoundException
add:catch(ClassNotFoundException e){}并查看结果。这不提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。这是最糟糕的回答。你在想什么?
 try {
          ....
        } catch ( ClassNotFoundException e ) {
            // TODO handle me
        }
Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
List<ResolveInfo> list = getPackageManager().queryIntentActivities( intent, 0 );