我正在尝试读取布局XML文件。
String file="res/layout/activity_main.xml";
InputStream in=mCurrentActivity.getClass().getClassLoader().getResourceAsStream(file);
InputStreamReader isr= new InputStreamReader(in);
BufferedReader br = new BufferedReader(isr);
while((line=br.readLine()) != null )
{
XposedBridge.log(line);
}
因为这是我的任期项目,所以我需要尽快解决(还剩2天),所以我们将不胜感激。
所以这是我解决的方法: 我没有ID,所以首先我得到的ID是:
int layoutId =mCurrentActivity.getResources().getIdentifier("activity_main", "layout",mCurrentActivity.getPackageName());
然后:
XmlResourceParser s = mCurrentActivity.getResources().getLayout(layoutId);
感谢Mike M。
答案 0 :(得分:0)
搜索为我带来了非常相似的问题here。我想,解决问题的主要思路是应该指定编码。
根据您的情况,尝试以这种方式更改代码:
#parent {
display: flex;
justify-content: center;
}
.child {
flex-grow: 1;
flex-basis: 0;
border: 3px solid #c4d1d4;
background: #ffffff;
margin: 0 20px 40px 20px;
}
或
String file="res/layout/activity_main.xml";
InputStream in=mCurrentActivity.getClass().getClassLoader().getResourceAsStream(file);
InputStreamReader isr= new InputStreamReader(in, "UTF-8");
BufferedReader br = new BufferedReader(isr);
while((line=br.readLine()) != null)
{
XposedBridge.log(line);
}
或尝试使用UTF-8以外的其他编码变体。
我想这取决于您在.xml文件中设置的编码类型
示例:
String file="res/layout/activity_main.xml";
InputStream in=mCurrentActivity.getClass().getClassLoader().getResourceAsStream(file);
InputStreamReader isr= new InputStreamReader(in, StandardCharsets.UTF_8);
BufferedReader br = new BufferedReader(isr);
while((line=br.readLine()) != null)
{
XposedBridge.log(line);
}
答案 1 :(得分:0)
您尝试读取的XML文件不是纯XML bin二进制XML格式。因此,尝试通过公用Reader
进行读取将无法正常工作。
您可以使用例如库AXML来加载此类二进制xml文件:
String file="res/layout/activity_main.xml";
InputStream in = mCurrentActivity.getClass().getClassLoader().getResourceAsStream(file));
Document doc = new CompressedXmlParser().parseDOM(in);