Android布局引用Java内部类报错:需用$替代.的问题求助
解决XML引用Java内部类的警告问题
在XML布局里引用Java内部类(比如你代码里CustomClass下的Layout内部类)时,Android布局解析器要求用$替换.,原因是Java编译后,内部类的字节码文件名格式是外部类$内部类.class,布局解析器是按这个编译后的名称来找类的。
修正后的布局代码:
<com.example.myapp.CustomClass$Layout xmlns:android="http://schemas.android.com/apk/res/android" ...> </com.example.myapp.CustomClass$Layout>
额外提示:
- 如果
Layout是静态内部类,这么改完就没问题了;要是它是非静态内部类,后续可能还会出现实例化失败的问题——因为非静态内部类必须依赖外部类的实例才能创建,这种情况建议把内部类改成静态的,或者调整类结构,别在XML里直接引用非静态内部类。
内容的提问来源于stack exchange,提问作者Kristian
相关产品推荐
相关产品推荐

