Проблема и решение описаны здесь .
java.lang.ClassNotFoundException
происходит из-за того, что приложение и его библиотеки превышают 65 536 методов, и в результате классы Java распределяются по нескольким файлам DEX (Dalvik EXecutable) в APK приложения, то есть classes.dex, classes2.dex и т. д. Java-классы, необходимые для запуска приложения, могут в конечном итоге оказаться в Class2.dex в APK приложения (в отличие от classes.dex), которые затем не могут быть загружены средой выполнения Dalvik в версиях Android менее 5. От веб-сайт Android:
При сборке каждого файла DEX для мультидексного приложения инструменты сборки выполняют сложный процесс принятия решений, чтобы определить, какие классы необходимы в основном файле DEX, чтобы ваше приложение могло успешно запускаться. Если какой-либо класс, который требуется при запуске, не указан в основном файле DEX, то ваше приложение вылетает с ошибкой java.lang.NoClassDefFoundError.
Решение состоит в том, чтобы идентифицировать каждый класс, на который ссылаются при запуске приложения, в текстовом файле, как описано в ссылке в начале моего сообщения.
Однако список обязательных классов длинный и сложный. Я добрался до классов ниже, но есть еще несколько классов запуска, чтобы обнаружить. Мое решение состоит в том, чтобы сказать: «Извините, это приложение доступно только для Android 5 и более поздних версий».
com/mycompany/app/myapp/MainActivity.class
org/apache/cordova/CallbackMap.class
org/apache/cordova/ConfigXmlParser.class
org/apache/cordova/CordovaActivity$1.class
org/apache/cordova/CordovaActivity.class
org/apache/cordova/CordovaInterface.class
org/apache/cordova/CordovaInterfaceImpl.class
org/apache/cordova/CordovaPreferences.class
org/apache/cordova/CordovaWebViewEngine.class
org/apache/cordova/engine/SystemWebViewEngine.class
org/apache/cordova/LOG.class
org/apache/cordova/PluginEntry.class
org/json/JSONException.class
org/json/JSONObject.class