开发者社区 问答 正文

在应用研发平台EMAS中,我们在安卓14上 EMS 报这个错?

在应用研发平台EMAS中,我们在安卓14上 EMS 报这个错Abort message: 'Check failed: method->GetDexFile()->IsInDataSection(handlers_ptr) void com.taobao.sophix.SophixApplication.onCreate()@AnoymousDex@0x702dd25208 is_compact_dex=0'

展开
收起
小小鹿鹿鹿 2023-10-16 12:00:27 157 分享 版权
1 条回答
写回答
取消 提交回答
  • 月移花影,暗香浮动

    这个错误看起来是关于安卓上的Dex文件问题。Dex是Android平台上的可执行文件格式,它包含了应用程序的代码。

    错误消息中的 void com.taobao.sophix.SophixApplication.onCreate()@AnoymousDex@0x702dd25208 is_compact_dex=0 表示在尝试访问一个Dex文件时遇到了问题。这个Dex文件可能没有正确地被创建、编译或加载。

    问题中的 method->GetDexFile()->IsInDataSection(handlers_ptr) 这一部分表明代码试图检查一个方法是否在数据段中。如果Dex文件有问题,这可能会导致失败。

    解决此问题,你可以尝试以下步骤:

    1、检查你的编译环境:确保你的开发环境(如IDE、编译器插件等)都是为Android 14优化的,或者至少是兼容的。由于Android的不断发展,旧的环境可能不完全支持新的Android版本。
    2、检查你的Dex文件:确认你的项目中所有的Dex文件都已经被正确生成和优化。有可能是某个Dex文件在创建或编译过程中出了问题。
    3、更新或检查你的依赖库:如果项目中使用了第三方库,尤其是与Android系统或Dex相关的库,确保它们是最新的,并且与Android 14兼容。
    4、检查代码:检查SophixApplication类的onCreate方法,看看是否有任何可能导致Dex文件错误的部分。
    5、重新构建项目:有时候,仅仅是IDE或构建系统的缓存问题导致的错误。尝试清理项目并重新构建。
    6、检查权限和签名:如果你在64位设备或模拟器上遇到此问题,可能是由于没有正确的签名或权限。确保你的APK被正确签名,并且你在AndroidManifest.xml中声明了必要的权限。

    2023-10-16 15:54:26
    赞同 展开评论