Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从internet获取xml文件时为==null_Java_Android_Xml_Xml Parsing - Fatal编程技术网

Java 从internet获取xml文件时为==null

Java 从internet获取xml文件时为==null,java,android,xml,xml-parsing,Java,Android,Xml,Xml Parsing,我有以下情况:我需要从Internet获取xml文件,然后从该文件获取歌词。这是代码,我写的,应该做的 private static class NetworkLyricsDownload extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void... voids) { try { UR

我有以下情况:我需要从Internet获取xml文件,然后从该文件获取歌词。这是代码,我写的,应该做的

private static class NetworkLyricsDownload extends AsyncTask<Void, Void, Void> {

        @Override
        protected Void doInBackground(Void... voids) {

            try {
                URL url = new URL("http://api.chartlyrics.com/apiv1.asmx/SearchLyricDirect?artist=Eminem&song=Lose%20Yourself");
                XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
                factory.setNamespaceAware(false);
                XmlPullParser xmlPullParser = factory.newPullParser();
                xmlPullParser.setInput(getInputStream(url), "UTF-8");
                boolean insideItem = false;
                int eventType = xmlPullParser.getEventType();
                while (eventType!=XmlPullParser.END_DOCUMENT){
                    if (eventType == XmlPullParser.START_TAG){
                        if (xmlPullParser.getName().equalsIgnoreCase("lyric")){
                            insideItem = true;
                            Log.i(getClass().getName(), xmlPullParser.nextText());
                        }
                    }
                    eventType = xmlPullParser.next();
                }
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (XmlPullParserException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }


            return null;
        }

        private InputStream getInputStream(URL url){
            try {
                return url.openConnection().getInputStream();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
    }
我在清单文件中有权限(
)但这仍然没有帮助。那么,出了什么问题,我该如何解决

UPD

这是我的清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="asus.example.com.player"
    android:targetSandboxVersion="1">

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:networkSecurityConfig="@xml/network_security_config"
        android:usesCleartextTraffic="true"
        tools:ignore="AllowBackup,GoogleAppIndexingWarning,UnusedAttribute">
        <activity android:name=".SongLyricsActivity"/>
        <activity android:name=".UploadLyricsActivity" />
        <activity
            android:name=".ListOfSongsActivity"
            android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity" />

        <service
            android:name=".MyService"
            android:enabled="true"
            android:exported="true"
            tools:ignore="ExportedService" />
    </application>

</manifest>


您确定没有以前的异常吗如果出现问题,您的
getInputStream
会显式返回null,并且您不会检查它是否返回null。也许你应该让异常被抛出并调试它。捕获它并尝试让您的程序继续运行似乎不起作用。尝试将读写权限添加到清单并启用它可能会返回getInputStreamnull@RafałSokalski,是的,但是为什么?您确定没有以前的异常吗?如果出现问题,您的
getInputStream
显式返回null,并且您不检查它是否返回null。也许你应该让异常被抛出并调试它。捕获它并尝试让您的程序继续运行似乎不起作用。尝试将读写权限添加到清单并启用它可能会返回getInputStreamnull@Rafa索卡尔斯基,是的,但为什么?
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="asus.example.com.player"
    android:targetSandboxVersion="1">

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:networkSecurityConfig="@xml/network_security_config"
        android:usesCleartextTraffic="true"
        tools:ignore="AllowBackup,GoogleAppIndexingWarning,UnusedAttribute">
        <activity android:name=".SongLyricsActivity"/>
        <activity android:name=".UploadLyricsActivity" />
        <activity
            android:name=".ListOfSongsActivity"
            android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".MainActivity" />

        <service
            android:name=".MyService"
            android:enabled="true"
            android:exported="true"
            tools:ignore="ExportedService" />
    </application>

</manifest>