我還沒有在Stackoverflow的其他線程中找到自信的響應。如何在Android上從SdCard解析矢量XML
有很多方法可以從sdcard中取出xml,但我收到相同的錯誤。我不明白爲什麼會發生這種情況。
1)這是我使用的方法:
public XmlPullParser xmlVectorFromResource() throws FileNotFoundException, IOException {
try {
String data;
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
File file = new
// testing loading a .xml from DCMI
File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "/cityscape.xml");
FileInputStream fis = new FileInputStream(file.getPath());
InputStreamReader isr = new InputStreamReader(fis);
char[] InputBuffer = new char[fis.available()];
isr.read(InputBuffer);
data = new String(InputBuffer);
isr.close();
fis.close();
XmlPullParser xpp = null;
xpp = factory.newPullParser();
xpp.setInput(new StringReader(data));
return xpp;
} catch (XmlPullParserException ex) {
ex.printStackTrace();
}
return null;
}
2)這是我想要的載體。這是一個有效的(我從RES測試/繪項目): http://beetxt.com/N4c
3)這是怎麼了callind方法:
XmlPullParser drawable = null;
try {
drawable = xmlVectorFromResource();
} catch (IOException e) {
e.printStackTrace();
}
if (drawable != null) {
try {
mImageview.setImageDrawable(VectorDrawableCompat
.createFromXml(holder.cardView.getResources()
, drawable));
} catch (XmlPullParserException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
} else {
Log.d(TAG, "Wapawm, problems");
}
4),這是我收到的錯誤: http://www.beetxt.com/ape/
我希望有一個解決方案。
在此先感謝。
UPDATE
現在我重新啓動aplication和接收新的錯誤。 LOL
這是我收到什麼:java.lang.ClassCastException:android.util.XmlPullAttributes不能轉換到android.content.res.XmlBlock $分析器
下面是一個測試項目,你可以看到錯誤github.com/denebchorny/vectorxmltest/tree/master
錯誤信息是什麼樣的? –
@ vtd-xml-author對不起,延遲。我在這裏發佈錯誤:http://www.beetxt.com/ape/,但本質上是W/System.err:org.xmlpull.v1.XmlPullParserException:找不到開始標記。我正在使用有效的向量。我測試過了。可能是什麼? –
我需要這樣加載一個向量,因爲我試圖從sdcard加載它並通過路徑檢查路徑來查找和比較特定的TAG。 –