Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.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 改装呼叫总是转到ON故障_Java_Android_Retrofit_Call - Fatal编程技术网

Java 改装呼叫总是转到ON故障

Java 改装呼叫总是转到ON故障,java,android,retrofit,call,Java,Android,Retrofit,Call,我正在尝试从后端服务获取信息,我正在使用改装来获得响应 这是我的改进单例类,我使用了一个随机api作为示例。当我开始服务时,我使用我自己的 import retrofit2.Retrofit; import retrofit2.converter.gson.GsonConverterFactory; public class BaseRetrofit { private static Retrofit retrofitInstance = null; private BaseR

我正在尝试从后端服务获取信息,我正在使用改装来获得响应

这是我的改进单例类,我使用了一个随机api作为示例。当我开始服务时,我使用我自己的

import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

public class BaseRetrofit {
    private static Retrofit retrofitInstance = null;
    private BaseRetrofit() {};

    public static Retrofit getRetrofitInstance() {

        if (retrofitInstance == null) {
            retrofitInstance = new Retrofit.Builder()
                    .baseUrl("http://192.168.1.155:5000")
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
        }

        return retrofitInstance;
    }
}
在我的主类中,我初始化改造并进行调用

EndPoints myEndPoints = BaseRetrofit.getRetrofitInstance().create(EndPoints.class);
Call<List<JobItem>> jobs = myEndPoints.getJobs();

jobs.enqueue(new Callback<List<JobItem>>() {
    @Override
    public void onResponse(Call<List<JobItem>> call, Response<List<JobItem>> response) {
        Log.d("SUCCESS", "LOADED JSON " + response.body().get(0).getJobType());
    }

    @Override
    public void onFailure(Call<List<JobItem>> call, Throwable t) {
        Log.d("ERROR", "ERROR LOADING JSON");
    }
});

如果应用程序调用的服务正在您的本地计算机(或本地主机或127.0.0.1)上运行,则如果您使用模拟器调用它,则需要使用10.0.2.2作为IP地址。所以你的URL看起来像

此外,由于协议是http,您需要在清单中添加允许明文。为此,最好的方法是在res目录中创建一个xml目录,并添加一个network-security-config.xml文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">10.0.2.2</domain>
    </domain-config>
</network-security-config>
<application
....
android:networkSecurityConfig="@xml/network_security_config">
.....
.....
</application>

10.0.2.2
然后,将其添加到您的清单中,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">10.0.2.2</domain>
    </domain-config>
</network-security-config>
<application
....
android:networkSecurityConfig="@xml/network_security_config">
.....
.....
</application>

.....
.....
还可以尝试打印出可丢弃的异常,以便在错误再次发生时了解更多信息


快乐编码

如果应用程序调用的服务正在您的本地计算机(或本地主机或127.0.0.1)上运行,则如果您使用模拟器调用它,则需要使用10.0.2.2作为IP地址。所以你的URL看起来像

此外,由于协议是http,您需要在清单中添加允许明文。为此,最好的方法是在res目录中创建一个xml目录,并添加一个network-security-config.xml文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">10.0.2.2</domain>
    </domain-config>
</network-security-config>
<application
....
android:networkSecurityConfig="@xml/network_security_config">
.....
.....
</application>

10.0.2.2
然后,将其添加到您的清单中,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">10.0.2.2</domain>
    </domain-config>
</network-security-config>
<application
....
android:networkSecurityConfig="@xml/network_security_config">
.....
.....
</application>

.....
.....
还可以尝试打印出可丢弃的异常,以便在错误再次发生时了解更多信息


快乐编码

尝试从Throwable打印错误消息variable@AmrDeveloper它表示网络安全策略不允许与192.168.1.155进行明文通信是的,请尝试网络安全配置,它将解决您的问题,并在将来添加日志以打印消息,这样它可以帮助您尝试从Throwable打印错误消息variable@AmrDeveloper它说网络安全策略不允许与192.168.1.155进行明文通信是的,请尝试网络安全配置,它将解决您的问题,并在将来添加日志以打印消息,这样它可以帮助您