Android:因为找不到java类而崩溃

问题描述 投票:0回答:2

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

这个transcodindg可以使用Kodi 18.1应用程序,但不是由其他应用程序或Android 8.1设置提出的。正如Kodi能够做到的那样,我反向设计了Android堆栈。我的结论是: - Android Oreo嵌入任何必要的编解码器和其他东西来做这个转码但是没有提出配置这个设置 - Android Pie提出了想要的环绕声设置(在SPDIF上输出Dolby Digital)

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

我首先尝试使用Android Studio生成TvSettings。我破解了应用程序资源,但当我明白我必须生成platfom dependacies时停止(例如SettingsLib.jar)

我的第二个试验是生成整个Android平台。构建完成后我可以在x86电视模拟上部署TvSettings应用程序,但是当我启动TvSettings应用程序时,我收到此错误:

---------崩溃的开始

2019-04-01 12:21:04.976 3987-3987 / com.android.tv.settings E / AndroidRuntime:FATAL EXCEPTION:main进程:com.android.tv.settings,PID:3987 java.lang.RuntimeException:无法get provider android.support.v4.content.FileProvider:java.lang.ClassNotFoundException:在路径上找不到类“android.support.v4.content.FileProvider”:DexPathList [[zip file“/ data / app / com。 android.tv.settings-2DkaCncwGQ874WP-kx3G4Q == / base.apk“],nativeLibraryDirectories = [/ data / app / com.android.tv.settings-2DkaCncwGQ874WP-kx3G4Q == / lib / x86,/ system / lib,/供应商/ LIB]]

我在互联网上搜索了这个错误,似乎它处理的是multidex功能。这种多指标功能已经过充分记录,可用于清洁开发的Android应用程序,但也不适用于从Android平台提取并使用adb部署的应用程序。

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

我能做什么?

android loading dex
2个回答
0
投票

你在清单中包含了fileProvider吗?


0
投票

好吧,在部署我的TvSettings应用程序期间似乎存在根错误。这是它的日志:

E / dex2oat:dex文件头中的版本号无效。文件:base.apk

我看了几页,发现这个非常有趣:https://source.android.com/devices/tech/dalvik/configure

因此,由于不同的优化,平台应用程序不会生成与平台API上方生成的应用程序相同的文件格式

我的想法是生成整个平台,包括TvSettings应用程序,并使用adb部署TvSettings。所以apk格式可能是错误的。

我的下一步是在TvSettings / Settings / Android.mk中添加以下标志:

LOCAL_DEX_PREOPT:= false

© www.soinside.com 2019 - 2024. All rights reserved.