首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActivityNotFoundException在中兴

ActivityNotFoundException在中兴
EN

Stack Overflow用户
提问于 2013-01-06 06:17:30
回答 3查看 2.3K关注 0票数 0

我是android的新手。我正在开发一个应用程序,在这个应用程序中,我必须使用zxing来扫描条形码和QR代码。在我的应用程序中,我不能使用第三方软件。这意味着我不能在我的应用程序中使用这些代码行

代码语言:javascript
复制
 IntentIntegrator integrator = new IntentIntegrator(shopping.this);
            integrator.initiateScan();

因此,在这种情况下,我在阅读了几个教程之后使用了这些行代码。

代码语言:javascript
复制
    Intent intent = new Intent("com.google.zxing.client.android.SCAN"); 
              intent.setPackage("com.google.zxing.client.android"); 
             // intent.putExtra("SCAN_MODE", "PRODUCT_MODE");
              intent.putExtra("SCAN_FORMATS", "CODE_39,CODE_93,CODE_128,DATA_MATRIX,ITF,CODABAR,EAN_13,EAN_8,UPC_A,QR_CODE");
              startActivityForResult(intent, 0); 

但不幸的是,这对我来说是个例外,我的日志猫输出如下-

代码语言:javascript
复制
                           01-06 06:00:02.131: D/AndroidRuntime(956): Shutting down VM
                  01-06 06:00:02.131: W/dalvikvm(956): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
                  01-06 06:00:02.161: E/AndroidRuntime(956): FATAL EXCEPTION: main
                  01-06 06:00:02.161: E/AndroidRuntime(956): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.google.zxing.client.android.SCAN pkg=com.google.zxing.client.android (has extras) }
                  01-06 06:00:02.161: E/AndroidRuntime(956):    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1545)
                  01-06 06:00:02.161: E/AndroidRuntime(956):    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1416)
                  01-06 06:00:02.161: E/AndroidRuntime(956):    at android.app.Activity.startActivityForResult(Activity.java:3351)
                  01-06 06:00:02.161: E/AndroidRuntime(956):    at android.app.Activity.startActivityForResult(Activity.java:3312)
                  01-06 06:00:02.161: E/AndroidRuntime(956):    at com.google.zxing.shopping.shopping$1.onClick(shopping.java:99)
                  01-06 06:00:02.161: E/AndroidRuntime(956):    at android.view.View.performClick(View.java:4084)
                 01-06 06:00:02.161: E/AndroidRuntime(956):     at android.view.View$PerformClick.run(View.java:16966)
                 01-06 06:00:02.161: E/AndroidRuntime(956):     at android.os.Handler.handleCallback(Handler.java:615)
                  01-06 06:00:02.161: E/AndroidRuntime(956):    at android.os.Handler.dispatchMessage(Handler.java:92)
                 01-06 06:00:02.161: E/AndroidRuntime(956):     at android.os.Looper.loop(Looper.java:137)
                 01-06 06:00:02.161: E/AndroidRuntime(956):     at android.app.ActivityThread.main(ActivityThread.java:4745)
               01-06 06:00:02.161: E/AndroidRuntime(956):   at java.lang.reflect.Method.invokeNative(Native Method)
                 01-06 06:00:02.161: E/AndroidRuntime(956):     at java.lang.reflect.Method.invoke(Method.java:511)
                01-06 06:00:02.161: E/AndroidRuntime(956):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
                 01-06 06:00:02.161: E/AndroidRuntime(956):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
                01-06 06:00:02.161: E/AndroidRuntime(956):  at dalvik.system.NativeStart.main(Native Method)

但当我换掉这条线

代码语言:javascript
复制
   Intent intent = new Intent("com.google.zxing.client.android.SCAN");

到这条线

代码语言:javascript
复制
   Intent intent = new Intent(shopping.this, CaptureActivity.class);

我成功地运行了我的应用程序--它成功地为我运行,但问题是它是只扫描**QR代码,它对条形码无效。为了方便那些想帮忙的人,我将展示我的清单文件

代码语言:javascript
复制
              <?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xyrad.xybuy"
android:versionCode="1"
android:versionName="1.0" >

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CALL_PHONE" >
</uses-permission>
<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" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH" />

<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="15" />

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

<application
    android:hardwareAccelerated="true"
    android:icon="@drawable/logo_xybuy"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <uses-library
        android:name="com.google.android.maps"
        android:required="true" />

    <activity
        android:name=".RegisterCustomer"
        android:label="@string/title_activity_register_customer" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <!-- BarCodeScanner -->
    <activity
        android:name="com.google.zxing.client.android.CaptureActivity"
        android:clearTaskOnLaunch="true"
        android:configChanges="orientation|keyboardHidden"
        android:screenOrientation="landscape"
        android:stateNotNeeded="true"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:windowSoftInputMode="stateAlwaysHidden" ><intent-filter>
            <action android:name="com.google.zxing.client.android.SCAN" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.ALTERNATIVE" />
        </intent-filter>

        <!-- Allow web apps to launch Barcode Scanner by linking to http://zxing.appspot.com/scan. -->
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data
                android:host="zxing.appspot.com"
                android:path="/scan"
                android:scheme="http" />
        </intent-filter>
        <!-- We also support a Google Product Search URL. -->
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data
                android:host="www.google.com"
                android:path="/m/products/scan"
                android:scheme="http" />
        </intent-filter>
        <!-- And the UK version. -->
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data
                android:host="www.google.co.uk"
                android:path="/m/products/scan"
                android:scheme="http" />
        </intent-filter>
        <!-- Support zxing://scan/?... like iPhone app -->
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data
                android:host="scan"
                android:path="/"
                android:scheme="zxing" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.google.zxing.client.android.PreferencesActivity"
        android:label="@string/preferences_name"
        android:stateNotNeeded="true" >
    </activity>
    <activity
        android:name="com.google.zxing.client.android.encode.EncodeActivity"
        android:label="@string/share_name"
        android:stateNotNeeded="true" >
        <intent-filter>
            <action android:name="com.google.zxing.client.android.ENCODE" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <!-- This allows us to handle the Share button in Contacts. -->
        <intent-filter>
            <action android:name="android.intent.action.SEND" />

            <category android:name="android.intent.category.DEFAULT" />

            <data android:mimeType="text/x-vcard" />
        </intent-filter>
        <!-- This allows us to handle sharing any plain text . -->
        <intent-filter>
            <action android:name="android.intent.action.SEND" />

            <category android:name="android.intent.category.DEFAULT" />

            <data android:mimeType="text/plain" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.google.zxing.client.android.history.HistoryActivity"
        android:label="@string/history_title"
        android:stateNotNeeded="true" >
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity android:name="WelcomeCustomerSplash" >
    </activity>
    <activity android:name="HomePage" >
    </activity>
    <activity android:name=".buy.BuyClick" >
    </activity>
    <activity android:name=".shoppinglistmanage.ShoppingListManageCompulsory" >
    </activity>
    <activity android:name=".otw.OtwClick" >
    </activity>
    <activity android:name=".buy.ClickIHaveList" >
    </activity>
    <activity android:name=".buy.WaitToPopulateData" >
    </activity>
    <activity android:name=".buy.ListWithDiscountNetPrice" >
    </activity>
    <activity android:name=".buy.PaymentOption" >
    </activity>
    <activity android:name=".buy.PurchaseItemList" >
    </activity>
    <activity android:name=".buy.UnPurchaseItemList" >
    </activity>
    <activity android:name=".googlemap.LocateForNearestStore" >
    </activity>
    <activity android:name=".googlemap.WhereIam" >
    </activity>
    <activity android:name=".paymentgateway.ShoppingPaymentGatewayPayPalActivity" >
    </activity>
    <activity
        android:name="com.paypal.android.MEP.PayPalActivity"
        android:configChanges="keyboardHidden|orientation"
        android:theme="@android:style/Theme.Translucent.NoTitleBar" >
    </activity>
    <activity
        android:name="com.google.zxing.shopping.PurchaseList"
        android:configChanges="orientation|keyboardHidden" >
    </activity>
    <activity android:name="com.google.zxing.shopping.DeviceListActivity" >
    </activity>
    <activity android:name="com.google.zxing.shopping.shopping" >
    </activity>

    <!-- purchase -->
    <!-- DeviceList -->
    <activity android:name="com.google.zxing.shopping.DataLayer" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.payment.BillingAddress" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.cart.ListCart" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.category.ListCategory" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.subcategory.ListCategorySubCategory" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.subcategory.TabSubCategory" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.catalog.ListCatalog" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.checkout.ListCheckOut" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.item.ItemDetails" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.item.ListItem" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.item.ItemReview" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.merchant.ListMerchant" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.merchant.TabMerchant" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.payment.ModeOfPayment" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.offer.ListOffer" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.payment.Payment" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.category.TabCategry" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.item.TabItem" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.item.TabItemDetails" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.item.TabItemDetailsAndReview" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.deparment.ListDepartment" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.catalog.TabCatalog" >
    </activity>
    <activity android:name="com.xyrad.xybuy.ecommerce.subcategory.TabSubCategoryegory.TabSubCategoryegory.TabSubCategory" >
    </activity>
</application>

<!-- Category -->

这是我对我的问题的描述。所以请有人帮帮我。我会发自内心地感谢所有的人。提前感谢大家。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-06 07:30:36

您正在获得ActivityNotFoundException,因为您的设备中没有安装Zxing应用程序。因此,请检查它是否已安装。如果没有,则将用户重定向到Zxing的playstore页面:

我已经为这些实现了一些代码。根据您的需要修改它:

代码语言:javascript
复制
boolean isZxingInstalled;
/*
 *Checking whether Zxing is installed or not
 */ 
try
{
ApplicationInfo info = getPackageManager().getApplicationInfo("com.google.zxing.client.android", 0 );
boolean isZxingInstalled = true;
    }
catch(PackageManager.NameNotFoundException e){
                isZxingInstalled=false;
          }

/*
 * Store the boolean value on the basis of Zxing is installed or not
 */

if(isZxingInstalled) //If it is then intent Zxing application
 {
         //start the facebook app
         Intent intent = new Intent("com.google.zxing.client.android.SCAN");
          intent.setPackage("com.google.zxing.client.android"); 
          intent.putExtra("SCAN_MODE", "PRODUCT_MODE");
          intent.putExtra("SCAN_FORMATS",    "CODE_39,CODE_93,CODE_128,DATA_MATRIX,ITF,CODABAR,EAN_13,EAN_8,UPC_A,QR_CODE");
          startActivityForResult(intent, 0); 
  }
 else //It's not then redirect user to PlayStore-ZxingPlage
  {
    /*
     *Checking whether PlayStore is installed in device or not?
     */
     boolean isPlayStoreInstalled
     try
     {
      ApplicationInfo i=getPackageManager().getApplicationInfo("com.google.vending", 0 );
      boolean isPlayStoreInstalled = true;
      }
     catch(PackageManager.NameNotFoundException e){
                isPlayStoreInstalled=false;
          }

      /*
       * If it is the download Zxing
       */ 
      if(isPlayStoreInstalled)
       {
        Intent DownloadZxing = new Intent(Intent.ACTION_VIEW,Uri.parse("market://detailsid=com.google.zxing.client.android"));
        startActivity(DownloadZxing);
        }
      else //Toast message indicating No PlayStore Found
       {
         Toast.makeText(this,"Install PlayStore First",Toast.LENGHT_SHORT).show();
        }
  }

希望这会有帮助:)

票数 0
EN

Stack Overflow用户

发布于 2013-01-06 06:33:59

您是否在您的手机或模拟器中安装了这个第三方应用程序,无论您在哪里运行该应用程序?

Android操作系统找不到这种活动。

代码语言:javascript
复制
          01-06 06:00:02.161: E/AndroidRuntime(956): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.google.zxing.client.android.SCAN pkg=com.google.zxing.client.android (has extras) }

使用“尝试和捕捉”块,确保应用程序安装在您的手机中,如果没有安装:将用户指向playstore上的第三方应用程序。

票数 0
EN

Stack Overflow用户

发布于 2013-01-06 07:00:46

使用提供的IntentIntegrator类,因为它将处理您需要处理的情况,比如未安装的应用程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14179848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档