Catch ActivityNotFoundException for QR Code Scan

Bug: 26293517
Change-Id: I6d67779bdef77729caab92c142135c5c2cebe013
diff --git a/sl4a/Common/src/com/googlecode/android_scripting/facade/CommonIntentsFacade.java b/sl4a/Common/src/com/googlecode/android_scripting/facade/CommonIntentsFacade.java
index 11411c0..9c678fe 100644
--- a/sl4a/Common/src/com/googlecode/android_scripting/facade/CommonIntentsFacade.java
+++ b/sl4a/Common/src/com/googlecode/android_scripting/facade/CommonIntentsFacade.java
@@ -17,10 +17,12 @@
 package com.googlecode.android_scripting.facade;
 
 import android.app.SearchManager;
+import android.content.ActivityNotFoundException;
 import android.content.Intent;
 import android.net.Uri;
 import android.provider.Contacts.People;
 
+import com.googlecode.android_scripting.Log;
 import com.googlecode.android_scripting.jsonrpc.RpcReceiver;
 import com.googlecode.android_scripting.rpc.Rpc;
 import com.googlecode.android_scripting.rpc.RpcOptional;
@@ -57,8 +59,13 @@
 
   @Rpc(description = "Starts the barcode scanner.", returns = "A Map representation of the result Intent.")
   public Intent scanBarcode() throws JSONException {
-    return mAndroidFacade.startActivityForResult("com.google.zxing.client.android.SCAN", null,
+    try {
+      return mAndroidFacade.startActivityForResult("com.google.zxing.client.android.SCAN", null,
         null, null, null, null);
+    } catch (ActivityNotFoundException e) {
+        Log.e("No Activity found to scan a barcode!", e);
+        return null;
+    }
   }
 
   private void view(Uri uri, String type) {
diff --git a/sl4a/ScriptingLayerForAndroid/src/com/googlecode/android_scripting/activity/ScriptManager.java b/sl4a/ScriptingLayerForAndroid/src/com/googlecode/android_scripting/activity/ScriptManager.java
index 327280f..ac31317 100644
--- a/sl4a/ScriptingLayerForAndroid/src/com/googlecode/android_scripting/activity/ScriptManager.java
+++ b/sl4a/ScriptingLayerForAndroid/src/com/googlecode/android_scripting/activity/ScriptManager.java
@@ -19,6 +19,7 @@
 import android.app.AlertDialog;
 import android.app.ListActivity;
 import android.app.SearchManager;
+import android.content.ActivityNotFoundException;
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
@@ -336,8 +337,12 @@
         mQuery = EMPTY;
       }
     } else if (itemId == MenuId.QRCODE_ADD.getId()) {
-      Intent intent = new Intent("com.google.zxing.client.android.SCAN");
-      startActivityForResult(intent, RequestCode.QRCODE_ADD.ordinal());
+      try {
+        Intent intent = new Intent("com.google.zxing.client.android.SCAN");
+        startActivityForResult(intent, RequestCode.QRCODE_ADD.ordinal());
+      }catch(ActivityNotFoundException e) {
+        Log.e("No handler found to Scan a QR Code!", e);
+      }
     } else if (itemId == MenuId.FOLDER_ADD.getId()) {
       addFolder();
     } else if (itemId == MenuId.PREFERENCES.getId()) {