마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

영화예매 앱 만드는 중 에러가 발생했습니다.

0 추천

public class MainActivity extends AppCompatActivity {
    private RecyclerView recyclerView;
    private MyRecyclerViewAdapter adapter;
    ArrayList<Movie> movieList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        recyclerView = (RecyclerView)findViewById(R.id.recycler_view);
        movieList = new ArrayList<Movie>();

        // Asynctask - OKHttp
        MyAsyncTask myAsyncTask = new MyAsyncTask();
        myAsyncTask.execute();

        // LayoutManager
        recyclerView.setLayoutManager(new GridLayoutManager(MainActivity.this,2));
    }

    // AsyncTask 는 UI를 담당하는 메인 스레드를 변경할수 없기 때문에
    // 백그라운데에서 사용할수 있는 것이다 (스레드와 핸들러를 사용해서 UI 작업 처리
    public class MyAsyncTask extends AsyncTask<String, Void, Movie[]>{
        // 로딩중 표시
        ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);

        @Override
        protected  void onPreExecute(){
            super.onPreExecute();;
            progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            progressDialog.setMessage("\t로딩중...");

            progressDialog.show();
        }

        @Override
        protected Movie[] doInBackground(String... strings) {
            OkHttpClient client = new OkHttpClient();
            Request request = new Request.Builder()
                    .url("https://api.themoviedb.org/3/movie/550?api_key=99368e79321918606193e99722f395b9")
                    .build();

            try{
                Response response =client.newCall(request).execute();
                Gson gson =new GsonBuilder().create();
                JsonParser parser = new JsonParser();
                JsonElement rootObject=parser.parse(response.body().charStream())
                        .getAsJsonObject().get("results");
                Movie[] posts = gson.fromJson(rootObject, Movie[].class);
                return posts;

            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected  void onPostExecute(Movie[] result){
            super.onPostExecute(result);
            progressDialog.dismiss();

            // ArrayList에 차례대로 추가한다.
            if(result.length>0){
                for(Movie p:result){
                    movieList.add(p);
                }
            }

            // 어뎁터 설정
            adapter = new MyRecyclerViewAdapter(MainActivity.this, movieList);
            recyclerView.setAdapter(adapter);
        }
    }
}

 

현재 영화 에매앱을 만들기 위해 theMovieDB 사이트에서 정보를 가져옵니다

하지만 앱을 실행시켜보면 앱이 바로 종료가 되고

rogcat을 확인해보면 31번줄인  setContentView(R.layout.activity_main); 에서 오류가 발생했다고 나옵니다.

왜 저기서 에러가 나는지부터해서 어떻게 수정해야할지 감을 못잡겠습니다...

늅늅개발자 님이 2019년 5월 23일 질문
2019년 5월 23일 수정

1개의 답변

0 추천
오류 메시지를 올리세요
익명사용자 님이 2019년 5월 23일 답변
...