2013-04-25 173 views
0

首先,我想告訴你,我已經盡我所能。跟隨在互聯網上的10個教程和堆疊的10個線程。仍然沒有成功。條碼掃描器(ZXing)崩潰

我知道你們推薦使用掃描方式進行掃描,但在我的情況下,它不是一個選項,我需要在我的應用程序中使用本地掃描。

我已經下載了斑馬線庫(2.1),隨後this tutorial

當我運行此代碼我的Galaxy S3和Galaxy Tab的10.1調試,程序崩潰,凍結像20秒,當我點擊後應該開始意圖結果的按鈕:com.google.zxing.client.android.SCANcom.google.zxing.client.android.CaptureActivity

請注意,我從條碼掃描儀應用程序複製了所有資源,如嗶聲,xml文件等。

Crash Log

我的代碼如下:

MainActivity.java

package com.example.philipscan; 

import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.util.Log; 
import android.view.Menu; 
import android.view.View; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    public void scanNow(View view) 
    { 
     Log.e("test", "button works!"); 

     Intent intent = new Intent("com.google.zxing.client.android.CaptureActivity"); 
     startActivityForResult(intent, 3); 
    } 

    public void onActivityResult(int requestCode, int resultCode, Intent intent) 
    { 
     Log.e("xZing", "Back"); 
     if (requestCode == 3) 
     { 
      if (resultCode == RESULT_OK) 
      { 
       String contents = intent.getStringExtra("SCAN_RESULT"); 
       String format = intent.getStringExtra("SCAN_RESULT_FORMAT"); 
       Log.e("xZing", "contents: "+contents+" format: "+format); 
       // Handle successful scan 
      } 
      else if (resultCode == RESULT_CANCELED) 
      { 
       // Handle cancel 
       Log.e("xZing", "Cancelled"); 
      } 
     } 
    } 
} 

Android清單

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.philipscan" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="17" /> 

     <uses-feature android:name="android.hardware.camera"/> 
      <uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/> 
      <uses-feature android:name="android.hardware.camera.flash" android:required="false"/> 
      <uses-feature android:name="android.hardware.screen.landscape"/> 
      <uses-feature android:name="android.hardware.wifi" android:required="false"/> 
      <uses-feature android:name="android.hardware.touchscreen" android:required="false"/> 

     <uses-permission android:name="android.permission.CAMERA"/> 
     <uses-permission android:name="android.permission.INTERNET"/> 
     <uses-permission android:name="android.permission.VIBRATE"/> 
     <uses-permission android:name="android.permission.FLASHLIGHT"/> 
     <uses-permission android:name="android.permission.READ_CONTACTS"/> 
     <uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/> 
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> 
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.philipscan.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
      <intent-filter> 
       <action android:name="com.google.zxing.client.android.SCAN"/> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 

     </activity> 
     <activity 
      android:name="com.google.zxing.client.android.CaptureActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
      <intent-filter> 
       <action android:name="com.google.zxing.client.android.SCAN"/> 
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 

     </activity> 
    </application> 

</manifest> 

我的SRC文件夾

My file list

我的所有幫助我能得到非常感謝。

+0

後有些崩潰日誌 – 2013-04-25 09:11:05

+0

崩潰日誌:http://pastebin.com/CvuusVbc – 2013-04-25 09:45:35

+0

你的崩潰顯示融爲一體。 google.zxing.client.android.CaptureActivity未找到您在此代碼中的交叉檢查 – 2013-04-25 09:52:15

回答

1

嘗試創建Intent另一種方式

Intent scanIntent = new Intent("com.google.zxing.client.android.SCAN"); 
scanIntent.putExtra("SCAN_MODE", "ONE_D_MODE"); 

然後startActivityForResult()像往常一樣。 ONE_D_MODE是掃描Code39等一維條形碼的模式。

+0

然後我得到這個錯誤:http://pastebin.com/wppEqaLg – 2013-04-25 11:56:12

+0

也首先給我這個彈出選擇:http:// imgur .com/uZH4b3Y – 2013-04-25 11:58:12

+0

嘗試將答案升級時顯示的附加項。沒有關於日誌中的異常的詳細信息:( – Viacheslav 2013-04-25 12:54:31