Android studio File Explorer sdcard文件怎么访问

DexClassLoader myDexClassLoader = new DexClassLoader(
                        //模拟器都没上传到手机sd卡里怎么也读出来了这个类,
                        //说明就是找到的本地的类,
                        //如果上传了,也是一样找不到这给类
                        //找不到文件原因:要加上这个外部存储管理权限,但是手机不同,不一定也是这样。
                        // <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
                        "/sdcard/test.dex",
                        //优化路径
                        MainActivity.this.getCacheDir().getAbsolutePath(),
                        null,
                        MainActivity.this.getClassLoader());
                //这里要加载的类,就只能从我指定路径的这个dex文件中去找
                try {
                    //如果安装到手机的apk里边有com.goals.plugin.Test这个类,还是会优先调用这个类,
                    //而不是你修改后的类。
                    //所以这就涉及到一个pathListElement要插到队列最前边去的问题,才能实现,热修复
                    Class<?> clazz
                            = myDexClassLoader.loadClass("com.goals.plugin.Test");
                    Method methodPrint = clazz.getMethod("myPrint");
                    methodPrint.invoke(clazz.newInstance());
                } catch (Exception e) {
                    e.printStackTrace();
                }

现象:通过Android Studio 文件管理器,直接将test.dex上传到sdcard目录下,看到文件上传成功,手机也可以看到。但是安装apk后找这个文件失败。

解决途径:

1,添加上文件访问权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

2,打开手机的动态访问权限

3,还是找不到文件,要加上这个外部存储管理权限,但是手机不同,不一定也是这样。
    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值