Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Zxing 1.7 и Android API 15 - сканер вызывает сбой приложения на устройстве Motorola

Автор вопроса: SujayPОтветов: 1

У меня есть Zxing 1.7 и Android API 15. Интегрировал сканер через Intent и добавил CaptureActivity, чтобы приложение не спрашивало, какую камеру использовать. Создал core.jar и добавил его в библиотеку проекта Android, а также добавил Zxing Android в качестве проекта библиотеки в мой проект. построить путь. Сканер не работает, и приложение вылетает в первый раз, когда я нажимаю вкладку "san" в своем приложении, но в следующий раз та же функциональность работает, когда я снова вхожу в свое приложение, и штрих-код можно отсканировать. Когда приложение вылетает в первый раз, оно выдает исключение ClassNot Found для CaptureActivity. Я выполнил все необходимые шаги, а также добавил CaptureActivity в файл Manifst.xml. Пожалуйста, посоветуйте, так как я пробовал много альтернатив. Работает ли 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");
      }
    }
 }

androidzxing

Ответы

Ответ 1 · Sean Owen

Здесь есть ряд проблем.

  • Если вы используете намерения, вам не нужен код core/ или android/. Обязательно удалите весь этот код из своего проекта, так как я думаю, что он мешает и вызывает сбой.
  • Вы не должны изменять свой AndroidManifest.xml
  • Да, zxing 1.7 работает со всеми версиями вплоть до 4.0.x, но вам следует использовать zxing 2.0, который был выпущен несколько дней назад.
  • Не пытайтесь написать свой собственный код интеграции. Используйте код, указанный в android-integration/, так как он определенно работает

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы