小鱼塘--自说自话的地方

  • 小玩意
  • 小想法
记录自己技术和想法地方
  1. 首页
  2. Uncategorized
  3. 正文

android DexClassLoader 加载失败

5 9 月, 2020 2216点热度 1人点赞 0条评论
内容目录

背景

自己最近想写一个APP,内部实现考虑兼容性问题,我想使用动态加载,一些核心变化的代码从服务器动态加载,这样子就不用每次都要更新APP。

动态加载

DexClassLoader: 我百度一下,基本规则是jar包通过dx处理一下,然后放在手机的sdcard里面,前提一定要给文件读写权限。

问题

我基本按照网上规则写的,但发现加载失败,我的测试手机是小米10 android 10,总是提示原始dex找不到。但文件确实存在,而且文件权限给了而且文件确实存在。

过程

  • 直接用跑模拟器 android 6 的版本上,确实可以跑起来,这说明肯定是android版本的问题,也可能跟miui的版本加强权限管理。
  • 大概解压的dex必须放在APP 自己目录,不能给外部路径,这样子为了安全问题,确实,如果dex被改成外部,就可以有权限访问内部数据。毕竟注入到代码里面去了。
  • 那么我猜测可能是加载jar路径可能也要放在APP内部,果然可以了。我放在asserts目录
  • 我猜测原因,磁盘的文件无法写入APP内部目录,因为我之前也试过/sdcard/复制到APP内部,但加载也会失败了。

标签: 暂无
最后更新:5 9 月, 2020

小鱼儿

爱研究技术,爱玩LOL

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2022 小鱼塘. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

湘ICP备18005349号