Моя цель - заставить мой Android-телевизор Mi Box S (Oreo 8.1) правильно транскодировать звуки Dolby Digital + (EAC3) в Dolby Digital (AC3) и выводить их на мой AVR через SPDIF.
Этот перекодирование возможно с приложением Kodi 18.1, но не предлагается другими настройками приложения или Android 8.1. Поскольку Kodi может это сделать, я реверс-проектировал стек Android.
Мой вывод:
- Android Oreo встраивает любые необходимые кодеки и другие вещи для выполнения этого транскодирования, но не предлагает настройки для настройки этого
- Android Pie предлагает желаемую настройку объемного звучания (вывод Dolby Digital на SPDIF)
Итак, моя цель - перенести приложение Android TvSettings из Pie в Oreo
Сначала я попытался сгенерировать TvSettings с помощью Android Studio. Я взломал ресурсы приложения, но остановился, когда понял, что мне нужно создать платформенные зависимости (например, SettingsLib.jar)
Мое второе испытание заключается в создании всей платформы Android.
Сборка завершена, и я могу развернуть приложение TvSettings на ТВ-симуляции x86, НО, когда я запустил приложение TvSettings, я получаю эту ошибку:
начало аварии:
2019-04-01 12: 21: 04.976 3987-3987 / com.android.tv.settings E / AndroidRuntime: ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основное
Процесс: com.android.tv.settings, PID: 3987
java.lang.RuntimeException: Невозможно получить провайдера «/data/app/com.android.tv.settings-2DkaCncwGQ874WP-kx3G4Q==/base.apk"],nativeLibraryDirectories=[/data/app/com.android.tv.settings-2DkaCncwGQ874WP-kx3G4Q==/lib/ x86, / system / lib, / vendor / lib]]
Я искал эту ошибку в интернете, и похоже, что она связана с мультидексной функцией. Эта мультидексная функция хорошо документирована для чистого приложения Android, но не для приложений, извлеченных из платформы Android и развернутых с помощью adb.
Эта проблема связана с загрузкой библиотек Java. Может быть, к multidex (я не совсем уверен).
Что я могу сделать?