Android:如何从JAR文件动态加载类?

我试图在Android平台上运行时动态加载一个类。 该类包含在单独的库JAR文件中,但与APK一起打包(按照SDK中的新库机制)。 当使用Class.forname方法时,我收到了一个未找到类的异常。 我已经看到了关于DexClassLoader方法的一些讨论,但我无法找到它如何使用的一个很好的例子(以及它是否是最好的方法 - 似乎比forname方法更复杂!)。

如果有人能提供一个如何处理这个问题的代码片段,我将非常感激。

非常感谢您的帮助。


这里是一个动态加载DevicePolicyManager类的例子。

Class myClass =                                                                        
  ClassLoader.getSystemClassLoader().loadClass("android.app.admin.DevicePolicyManager")

Object DPMInstance = myClass.newInstance();                                            

Method myMethod = myClass.getMethod("setPasswordQuality",                              
                                    new Class[] { ComponentName.class,                 
                                                  int.class });                        
myMethod.invoke(DPMInstance,                                                           
                new Object[] { myComponentName,                                        
                               PASSWORD_QUALITY_NUMERIC }); 

这非常有用,因此您可以选择仅在设备运行足够高的SDK版本时才加载类。

链接地址: http://www.djcxy.com/p/62549.html

上一篇: Android: How to dynamically load classes from a JAR file?

下一篇: How to get URI from an asset File?