尝试使用Android“解析XML数据”代码不起作用:“解析XML时出错”

时间:2017-09-28 15:10:10

标签: java android xml parsing

我的Android培训页面中的代码存在问题:https://developer.android.com/training/basics/network-ops/xml.html 我下载了网络usage.zip文件,并没有改变任何代码。不幸的是,它既不在我的手机上也不在我的模拟器上。

在此之后,我搜索了问题并在此处找到了这个帖子:Android Networkusage app,Error Parsing XML 我试图用这个线程提供的解决方案解决问题,但不幸的是,它没有工作,仍然显示错误:“解析XML时出错”

我很确定错误在Manifest文件中,因为我查看了手机的设置,而且应用程序没有使用Wifi或移动数据的任何权限。

这是我的“Android清单文件”,我的其余代码与从参考指南下载的代码完全一样:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.networkusage"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="4"
    android:targetSdkVersion="14" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >

    <activity
        android:name=".NetworkActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:label="SettingsActivity" android:name=".SettingsActivity">
         <intent-filter>
            <action android:name="android.intent.action.MANAGE_NETWORK_USAGE" />
            <category android:name="android.intent.category.DEFAULT" />
      </intent-filter>
    </activity>
</application>

1 个答案:

答案 0 :(得分:0)

对于有同样问题的任何人:我找到了一种让应用程序正常工作的方法。实际上,它没有触及清单文件。但是,在“NetworkActivity.java”文件中,您需要更改一行并直接粘贴URL(见下文)

@Override
    protected String doInBackground(String... urls) {
        try {
            return loadXmlFromNetwork("https://stackoverflow.com/feeds/tag?tagnames=android&sort=newest%22");  
// *here instead of urls[0] you have to add the URL manually. I guess, it is not the most elegant solution, but it works ;)*
        } catch (IOException e) {
            return getResources().getString(R.string.connection_error);
        } catch (XmlPullParserException e) {
            return getResources().getString(R.string.xml_error);
        }
    }