首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dalvik类加载器之谜

Dalvik类加载器之谜
EN

Stack Overflow用户
提问于 2012-01-15 15:16:26
回答 1查看 2.1K关注 0票数 4

我在Android2.2SDK上,无法在MultiUserChat类中执行静态代码块。我曾尝试将其强制加载为

代码语言:javascript
复制
try 
{
    String qual = MultiUserChat.class.getName();
    ClassLoader.getSystemClassLoader().loadClass(qual);
        
} catch (ClassNotFoundException e) {

    e.printStackTrace();
}

并且它总是命中catch块。‘'qual’获取类的有效名称...那会是什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-15 22:11:23

您的应用程序包括ArrayList和Activity等框架类,以及FlashlightActivity等应用程序类。框架类由系统类加载器(以及引导类loader )加载;应用程序类由应用程序类加载器加载。

系统类加载器只能看到系统类。它不知道应用程序类的路径,也不能用来加载应用程序类。您需要使用应用程序类加载器来执行此操作。获取对应用程序类加载器的引用的最简单方法是通过应用程序类:

代码语言:javascript
复制
try {
    String qual = MultiUserChat.class.getName();
    MyActivity.class.getClassLoader().loadClass(qual);
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8868151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档