Zxing 1.7和Android API 15 -Scanner在摩托罗拉设备上崩溃了应用程序

时间:2012-02-06 05:28:30

标签: android zxing

我有Zxing 1.7和Android api 15.通过Intent集成扫描器并添加了CaptureActivity,以便应用程序不要求使用哪个摄像头。处理core.jar并将其添加到Android项目库中并添加Zxing Android作为库项目到我的项目构建路径。 当我点击我的应用程序的“san”选项卡时,扫描仪无法正常工作,应用程序崩溃,但下次在我的应用程序中登录时可以扫描条码的相同功能。 当应用程序第一次崩溃时,它会为CaptureActivity提供ClassNot Found异常。我已经遵循了所有需求步骤,并在Manifst.xml文件中添加了CaptureActivity。 请给我建议,因为我尝试了很多替代方案。 Zxing是否只适用于现在已经过时的Android API9,它的替代品是10?以下是我的ScanActivity的代码

public void onCreate(Bundle savedInstanceState) 
  {         
    super.onCreate(savedInstanceState);        
    //Scan code
    Intent intent= new Intent("com.google.zxing.client.android.SCAN");
    intent.putExtra("SCAN_MODE", "PRODUCT_MODE");

    //To aviod the complete action using dialog box
    intent.setClassName(this, "com.google.zxing.client.android.CaptureActivity"); 

    startActivityForResult( intent, 0 );

    //getApplicationContext().startActivity( intent );
    //View scanView = ((ActivityGroup) context).getLocalActivityManager().startActivity(id, newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();

    /*
    Intent i = new Intent(Intent.ACTION_MAIN);
    PackageManager manager = getPackageManager();
    i = manager.getLaunchIntentForPackage( "com.google.zxing.client.android.SCAN" );
    i.addCategory( Intent.CATEGORY_LAUNCHER );
    startActivityForResult( i, 0);
    */
   }

  public void onActivityResult(int requestCode, int resultCode, Intent intent)
  {
    System.out.println("ScanRewardCodeActivity OnActivityResult Method");
    if(requestCode == 0)
    {
      //Stop QR Code Reader intent
      finishActivity( 0 );

      TabActivity tabActivity = (TabActivity)getParent();
      TabHost tabHost = tabActivity.getTabHost();

      if(resultCode == RESULT_OK){
       System.out.println("Done");
      }
    }
 }

1 个答案:

答案 0 :(得分:0)

这里有很多问题。

  • 如果您使用的是Intents,则不需要core/android/代码。确保从项目中删除所有这些代码,因为我认为它会干扰并导致崩溃。
  • 您不应修改AndroidManifest.xml
  • 是zxing 1.7适用于所有版本到4.0.x,但是,你应该使用几天前发布的zxing 2.0
  • 不要尝试编写自己的集成代码。使用android-integration/中给出的代码,因为它肯定有用