在插件化开发中会使用DexClassLoader,今天干了一件很傻的事情。没有在AndroidManifest中声明
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
这些权限,但是就从存储卡中加载含有dex的jar,导致每次dexClassLoader.loadClass的时候都会抛出ClassNotFoundException的异常。但实际上jar中是有这个要加载的类的。
会用到的指令:
E:\sdk\build-tools\build-tools-23.0.1>dx –dex –output=dynamic_temp.jar Dynamic
_real.jar
需要将Dynamic_real.jar打成含有classes.dex的dynamic_temp.jar。