【问题标题】:android R.id class not found at runtime运行时未找到 android R.id 类
【发布时间】:2015-04-28 11:03:18
【问题描述】:

我试图在运行时获取所有 ID。我正在使用反射。但我得到ClassNotFoundException

try {
    aClass = classLoader.loadClass(getPackageName()+".R.id");       
    Field[] ID_Fields = aClass.getFields();
    int[] resArray = new int[ID_Fields.length];
    for(int i = 0; i < ID_Fields.length; i++) {    
        try {
          resArray[i] = ID_Fields[i].getInt(null);
         } catch (IllegalAccessException e) {
          e.printStackTrace();
         }
    }
} catch (ClassNotFoundException e1) {
        e1.printStackTrace();
}

【问题讨论】:

    标签: java android r.java-file


    【解决方案1】:

    idR 的内部类。您应该使用美元符号$ 来访问它

    classLoader.loadClass(getPackageName()+".R$id");  
    

    你也可以静态方法Class.forName

    aClass  = Class.forName(getPackageName()+".R$id");
    

    来自文档:

    返回与类或接口关联的 Class 对象 给定的字符串名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-13
      • 1970-01-01
      • 2021-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多