首页 > 解决方案 > Android:因为找不到 java 类而崩溃

问题描述

我的目标是能够让我的 Android TV Mi Box S (Oreo 8.1) 正确地将杜比数字 + (EAC3) 声音转码为杜比数字 (AC3) 并通过 SPDIF 将其输出到我的 AVR。

Kodi 18.1 应用程序可以进行此转码,但其他应用程序或 Android 8.1 设置不建议此转码。由于 Kodi 能够做到,我对 Android 堆栈进行了逆向工程。我的结论是:-Android Oreo 嵌入了任何必要的编解码器和其他东西来进行此转码,但没有提出配置此设置的设置-Android Pie 提出了想要的环绕声设置(在 SPDIF 上输出杜比数字)

所以我的目标是将 Android TvSettings 应用程序从 Pie 反向移植到 Oreo

我首先尝试使用 Android Studio 生成 TvSettings。我破解了应用程序资源,但当我了解到我必须生成平台依赖项(例如 SettingsLib.jar)时停止了

我的第二次尝试是生成整个 Android 平台。构建完成,我可以在 x86 电视模拟上部署 TvSettings 应用程序,但是当我启动 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:无法获取提供程序 android.support.v4.content.FileProvider:java.lang.ClassNotFoundException:在路径上找不到类“android.support.v4.content.FileProvider”:DexPathList [[zip 文件“/data/app/com. android.tv.settings-2DkaCncwGQ874WP-kx3G4Q==/base.apk"],nativeLibraryDirectories=[/data/app/com.android.tv.settings-2DkaCncwGQ874WP-kx3G4Q==/lib/x86, /system/lib, /供应商/库]]

我在互联网上搜索了这个错误,它似乎与 multidex 功能有关。对于干净开发的 Android 应用程序,这个 multidex 特性有很好的文档记录,但对于从 Android 平台提取并使用 adb 部署的应用程序来说,这并不是真正的。

此问题与 java 库加载有关。我发现线程引用了 Android multidex 功能,但仅适用于使用 Android Studio/Gradle 构建的应用程序,并且我的应用程序是使用 Android 平台构建的

我能做些什么?

标签: androidloadingdex

解决方案


您是否在清单中包含了 fileProvider ?


推荐阅读