繁体   English   中英

使用Zxing获取android.content.ActivityNotFoundException

[英]Getting android.content.ActivityNotFoundException with Zxing

我遵循了以下教程: http : //damianflannery.wordpress.com/2011/06/13/integrate-zxing-barcode-scanner-into-your-android-app-natively-using-eclipse/

但是即使按照提示编辑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中没有任何内容。

这是很困惑的。 如果通过Intent进行集成,则根本不需要更改清单,因此,请删除仅为集成而更改的所有内容。

该应用尚未安装,您没有正确处理。 您必须捕获ActivityNotFoundException ,或提前确定已安装用于处理Intent的应用程序。

但是,不需要任何这种复杂性。 请参阅http://code.google.com/p/zxing/wiki/ScanningViaIntent 您可以使用IntentIntegrator ,通过几行代码即可为您正确地完成所有这些操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM