diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
index a9b58de444dd7bd01cfece3622171f3f2d155123..d6de17122d0f111fa80e03e347ca4cfe85c63ff0 100644
--- a/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
+++ b/java/src/com/android/inputmethod/latin/BinaryDictionaryFileDumper.java
@@ -363,8 +363,14 @@ public final class BinaryDictionaryFileDumper {
      */
     public static void cacheWordListsFromContentProvider(final Locale locale,
             final Context context, final boolean hasDefaultWordList) {
-        final ContentProviderClient providerClient = context.getContentResolver().
+        final ContentProviderClient providerClient;
+        try {
+            providerClient = context.getContentResolver().
                 acquireContentProviderClient(getProviderUriBuilder("").build());
+        } catch (final SecurityException e) {
+            Log.e(TAG, "No permission to communicate with the dictionary provider", e);
+            return;
+        }
         if (null == providerClient) {
             Log.e(TAG, "Can't establish communication with the dictionary provider");
             return;