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

2016-03-02 14:36:47 +08:00
 mofet

初次涉足 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 做比对。请教这种情况有无规范或普遍的做法?

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

1903 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/260496

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX