2012-01-24 95 views
1

我按照下面的教程:http://damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app-natively-using-eclipse/獲取android.content.ActivityNotFoundException與斑馬線

但即使作爲編輯告知有我收到以下錯誤Android清單XML後:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.google.zxing.client.android.SCAN pkg=com.google.zxing.client.android (has extras) } 

我的代碼:

public class BarCodeScannerActivity extends Activity { 
     /** Called when the activity is first created. */ 
     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 


     Button ok; 

     ok=(Button) findViewById(R.id.b1); 
     ok.setOnClickListener(new View.OnClickListener() 
     { 

      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       System.out.println("Helllllllloooooooo"); 
       Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
      intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE","QR_CODE_MODE");  
       startActivityForResult(intent, 0); 

     } 
    }); 
     } 

    public void onActivityResult(int requestCode, int resultCode, Intent intent) {    
    System.out.println("onActivityResult________resultCode________ "+resultCode); 

    if (requestCode == 0) { 
     if (resultCode == RESULT_OK) {  
      String contents = intent.getStringExtra("SCAN_RESULT"); 
      System.out.println("contentsssssssssssssssssssssss" + contents); 
      Toast.makeText(getApplicationContext(),"Congratulations!!!... Product Code"+ contents + "On Scanning This Item..." ,Toast.LENGTH_LONG).show(); 

      String format = intent.getStringExtra("SCAN_RESULT_FORMAT"); 
      System.out.println("Formaattttttttttttttt " + format); 
      // Handle successful scan  
     } else if (resultCode == RESULT_CANCELED) { 
      // Handle cancel  
      }  
     } 
    } 
    } 

而且mainfest文件:

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name=".BarCodeScannerActivity" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 



    </activity> 


    <activity android:name="com.google.zxing.client.android.CaptureActivity" 
    android:screenOrientation="landscape" 
    android:configChanges="orientation|keyboardHidden" 
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
    android:windowSoftInputMode="stateAlwaysHidden"> 

    <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> 





</application> 

<uses-permission android:name="android.permission.CAMERA" /> 

現在我得到附加的屏幕截圖的一個奇怪的問題,一旦我更新了我的清單如下:

<activity android:name="com.google.zxing.client.android.CaptureActivity" 
       android:screenOrientation="landscape" 
       android:configChanges="orientation|keyboardHidden" 
       android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
      android:windowSoftInputMode="stateAlwaysHidden"> 
    <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> 
![enter image description here][1] 
<activity android:name=".ScanItemActivity" 
     android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden" 
     android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
     android:windowSoftInputMode="stateAlwaysHidden"> 
     </activity> 

我的意思是說「 「對不起,Android相機遇到了問題。您可能需要重新啓動 設備。」

無所不有在logcat中。

+0

嘗試插入' 'BarCodeScannerActivity'中的塊# – Ghost

+0

對不起,我沒有得到你..我已經添加這些東西的權利? – Smitha

+0

另請嘗試此操作:從''標記中的'com.google.zxing.client.android.CaptureActivity'移除'com.google.zxing.client.android'。 – Ghost

回答

2

這是相當混亂。你不需要改變你的清單所有,如果你是意圖整合,因此刪除任何東西你只是改變爲一體。

的應用程序沒有安裝,而且您沒有正確地處理這個。你必須趕上ActivityNotFoundException,或者提前確定該應用程序來處理安裝Intent

但,不需要任何這種複雜性。見http://code.google.com/p/zxing/wiki/ScanningViaIntent。您可以使用IntentIntegrator,它可以在幾行代碼中正確完成所有這些工作。

+0

no ..我不想使用已安裝的應用程序如果你檢查我提到的博客,你會得到它 – Smitha

+0

是的,我寫了博客基於的代碼:我明白了,你在這裏混合了兩個不相關的東西,如果你想嵌入解碼器,你不使用Intents,但如果你是新手,我強烈建議你使用Intents,因爲我認爲它需要一個公平的有點複雜,建立自己的掃描儀應用程序(即,不復制和粘貼我們的公司DE)。 –

+0

是的..感謝肖恩。 – Smitha