V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
mofet
V2EX  ›  问与答

Android 使用 DexClassLoader 动态加载库文件遇到问题

  •  
  •   mofet · 2016-03-02 14:36:47 +08:00 · 1881 次点击
    这是一个创建于 3188 天前的主题,其中的信息可能已经有所发展或是发生改变。

    初次涉足 Android ,基础不好请各位见谅。

    公司的闭源项目使用到 LGPL 协议的类库,被要求必须 dynamic link 。现在用 DexClassLoader 实现遇到几个问题:

    1.由于是类库不是自己打包的 jar 文件,没有 interface ,要调用似乎只能用反射,类似

    Class clazz = null;
    Method method = clazz.getDeclaredMethod("func");
    T result = (T) method.invoke(clazz.newInstance());

    但是这里我需要用到的类并不适用空的构造方法, newInstance()该如何调用自定义的构造方法呢?

    2.被调用的方法会抛出一打异常,要分类处理。多数 Exception 的类型同样是在这个库里定义的,通常程序里是

    import xxx.CustomException;

    try {
    ……
    } catch (CustomException e) {
    ……
    }

    但这里 CustomException 同样在动态加载的类库里故而不能用 import ,目前我的想法是一概 catch Exception ,再用(1)的方法拿到 CustomException 的 Class 做比对。请教这种情况有无规范或普遍的做法?

    如果有相关的学习资料也希望得到共享,谢谢。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1101 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 23:42 · PVG 07:42 · LAX 15:42 · JFK 18:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.