Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.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
无法将我的android应用程序连接到Heroku服务器_Android_Heroku_Retrofit_Okhttp - Fatal编程技术网

无法将我的android应用程序连接到Heroku服务器

无法将我的android应用程序连接到Heroku服务器,android,heroku,retrofit,okhttp,Android,Heroku,Retrofit,Okhttp,我正在使用改装连接到heroku服务器。MainActivity中我的改装对象和其他相关代码如下所示: public class MainActivity extends AppCompatActivity { private ApiService service; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSta

我正在使用改装连接到heroku服务器。MainActivity中我的改装对象和其他相关代码如下所示:

public class MainActivity extends AppCompatActivity {

    private ApiService service;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        OkHttpClient okHttpClient = new OkHttpClient();
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("https://<my heroku app name>.herokuapp.com/")
                .addConverterFactory(MoshiConverterFactory.create())
                .client(okHttpClient)
                .build();
        service = retrofit.create(ApiService.class);

    }

    public ApiService getService() {
        return service;
    }
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="true"><my heroku app name>.herokuapp.com</domain>
</domain-config>
</network-security-config>
public类MainActivity扩展了AppCompatActivity{
私人蜂房服务;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
OkHttpClient OkHttpClient=新的OkHttpClient();
改装改装=新改装.Builder()
.baseUrl(“https://.herokuapp.com/")
.addConverterFactory(MoshiConverterFactory.create())
.客户(okHttpClient)
.build();
服务=改装.create(ApiService.class);
}
公共服务{
回程服务;
}
我正在检查是否能够实现服务器连接的代码如下所示(不过,我认为这部分还可以):

公共类主页扩展片段{
@可空
@凌驾
公共视图onCreateView(@NonNull layoutiner充气机,
@可为空的视图组容器,
@可为空的捆绑包savedInstanceState){
final FragmentHomepageBinding=FragmentHomepageBinding.充气(充气机、容器、假);
最终MainActivity MainActivity=(MainActivity)requireActivity();//铸造
Call Call=mainActivity.getService().getHome();
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
如果(!response.issusccessful()){
binding.tekstasB.setText(“代码:+response.Code());
返回;
}
ResponseBody result=response.body();
试一试{
Log.d(“LoginPage”,result.string());
具有约束力。Tekstatsb.setText(“改造工程”);
}捕获(IOE异常){
e、 printStackTrace();
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
binding.tekstasB.setText(t.getMessage());
}
});
binding.listRecyclerFirst.setAdapter(new HorizontalListAdapter());
返回binding.getRoot();
}
}
另外,我的network_security_config.xml看起来像这样:

public class MainActivity extends AppCompatActivity {

    private ApiService service;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        OkHttpClient okHttpClient = new OkHttpClient();
        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("https://<my heroku app name>.herokuapp.com/")
                .addConverterFactory(MoshiConverterFactory.create())
                .client(okHttpClient)
                .build();
        service = retrofit.create(ApiService.class);

    }

    public ApiService getService() {
        return service;
    }
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="true"><my heroku app name>.herokuapp.com</domain>
</domain-config>
</network-security-config>

.herokuapp.com
我的舱单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.<app name>">

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

    <application
        android:allowBackup="true"
        android:networkSecurityConfig="@xml/network_security_config"


        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>

</manifest>

根据具体情况,如果使用http或https,我会收到以下错误消息 “网络安全配置不允许明文通信,如果是https,我只会得到”代码:404”

有人能告诉我这方面的方向吗