也许有人可以帮助我。
如何生成类似于android sdk-platform中android.jar的jar库。
它应该删除所有方法实现,并将其替换为throw new RuntimeException("Stub!");
,如下所示:
AppWidgetManager() { throw new RuntimeException("Stub!"); }
public NdefMessage(NdefRecord[] records) { throw new RuntimeException("Stub!"); }
public NdefRecord[] getRecords() { throw new RuntimeException("Stub!"); }
所有公众成员也在场。
答案 0 :(得分:2)
如果没有其他人提供解决方案,这是一个非常简单的案例。
最简单的可能是使用java的反射,从jar中读取所有类并生成java源代码。
Amd然后有像ASM这样的图书馆;字节码操作以及java dom源代码库。
答案 1 :(得分:2)
使用javassist的简单解决方案(我没有测试,但粗略地说,应该是这样):
ClassPool pool = new ClassPool();
pool.appendClassPath("pathToYourJar");
CtClass clazz = pool.get("Your class");
CtMethod throwingMethod = CtMethod.make("throw new RuntimeException();",clazz);
for(CtMethod method : clazz.getDeclaredMethods()){
method.setBody(throwingMethod,null);
}
clazz.writeFile("pathToYourNewClassDirectory");
//zip the classes in your new class directory into a jar,
// add a manifest if you need to, deploy to where you want it