web-dev-qa-db-ja.com

ボレーが最新バージョンAndroid

私は自分のアプリがPixel 3で動作していないことに気付きました。Androidスタジオに入り、いくつかのデバイスをエミュレートしましたが、どのAndroid Pieでも動作していないことに気付きました。 (API 28)デバイスですが、他のデバイスでは問題なく機能します。コード全体にいくつかのログを記録しましたが、Volleyの使用中に応答が得られなかったようです。アプリ自体は読み込まれますが、データは表示されません。エラーが表示されます

E/RecyclerView:アダプターが接続されていません。レイアウトをスキップ

私のコードは

import Android.content.Intent;
import Android.os.Bundle;
import Android.os.Handler;
import Android.util.Log;
import Android.support.v7.app.AppCompatActivity;
import Android.view.WindowManager;
import com.Android.volley.Request;
import com.Android.volley.Response;
import com.Android.volley.VolleyError;
import com.Android.volley.toolbox.StringRequest;
import com.Android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONObject;

public class MainActivity extends AppCompatActivity {
    DatabaseManagement db;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_main);
        db = new DatabaseManagement(this);
        grabData();
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent i = new Intent(MainActivity.this, com.hellapunk.hellapunk.feature.Main2Activity.class);
                startActivity(i);
                finish();
            }
        }, 3000);
    }

    public void grabData() {
        //Log.i("Made it", "You made it this far");
        String url = "http://hellapunk.com/listallshows.php?id=2018";
        StringRequest sr = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                try {
                    JSONArray showInfo = new JSONArray(response);
                    Log.i("Something", "response");
                    for (int i = 0; i < showInfo.length(); ++i) {
                        JSONObject showInfo1 = showInfo.getJSONObject(i);

                        if ((db.checkShow(showInfo1.getString("show_summary"),
                                showInfo1.getString("show_date"))) > 0) {
                            Log.i("Results", "Show already exists");
                        } else {
                            db.insertShows(showInfo1.getString("show_summary"),
                                    showInfo1.getString("venue_name"),
                                    showInfo1.getString("show_date"),
                                    showInfo1.getString("shows_img"),
                                    showInfo1.getString("venue_address"),
                                    showInfo1.getString("city_name"),
                                    showInfo1.getString("city_region"));
                        }
                    }
                } catch (Exception e) {
                    Log.i("Error", e.getMessage());
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.i("TAG", ""+error);
            }
        });
        Volley.newRequestQueue(this).add(sr);

    }
}

スプラッシュスクリーンの間にデータを取得し、ローカルデータベースに保存します。次に、次のアクティビティのdbから呼び出されます。アドバイスがあれば大歓迎です!

4
j_timko

または、Androidマニフェストのapplication要素の下でusesCleartextTraffic属性を使用できます。Android Pのデフォルト値は「false」です。

<application
     Android:usesCleartextTraffic="true"

</application>

ただし、minSdkVersion 23以降が必要です。

0
Aristo Michael

この問題について、私はhttpsを使用しており、今はうまく機能しています

0
megyptm