java.net.UnknownHostException:无法解析主机;api.themoviedb.org

java.net.UnknownHostException:无法解析主机;api.themoviedb.org,java,android,android-studio,Java,Android,Android Studio,我收到错误消息“java.net.UnknownHostException:无法解析主机”api.themoviedb.org:没有与主机名关联的地址”。 我读到的所有stackoverflow帖子都说清单文件可能是错误的,但我认为在这一点上它是正确的,所以我不确定如何继续 AndroidManifest.xml: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.and

我收到错误消息“java.net.UnknownHostException:无法解析主机”api.themoviedb.org:没有与主机名关联的地址”。 我读到的所有stackoverflow帖子都说清单文件可能是错误的,但我认为在这一点上它是正确的,所以我不确定如何继续

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.flixster">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<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">

    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

}查看您的代码,我发现了两个问题:

  • 您的
    正在播放的
    在3之后有一个额外的斜杠(
    themoviedb.org/3//movie/
    ),因此将字符串替换为

    public static final String NOW_PLAYING_URL = "https://api.themoviedb.org/3/movie/now_playing?api_key=a07e22bc18f5cb106bfe4cc1f83ad8ed";
    
  • 这就是api调用返回失败的原因

  • 接下来,响应是成功的,但是在
    onSuccess()
    try
    块中,您正在为
    “result”
    获取数据,但是您的API响应返回
    “results”
    ,因此按如下所示替换该键,您应该不会出现任何问题

    JSONArray results = jsonObject.getJSONArray("results");
    

  • 希望这有帮助。

    DNS名称为我解析。(不在Android上…)事实上,他们正在宣传IPv4和IPv6地址。还有其他需要检查的事情。1) 你的无线网络开着吗?2) 您的设备是否启用了移动互联网?3) 它处于飞行模式吗?4) 你在使用模拟器吗?另请参阅:类似的Q&AsMy测试手机确实处于飞行模式,但没有意识到。非常感谢@StephenC。有时候是小事。
    JSONArray results = jsonObject.getJSONArray("results");