0
votes

Create an App using RecyclerView and Retrofit to Call Data from an API.

There's no error message in the java and XML file. But when I run the apps. It's force close.

with this message on its Log Cat.

08-07 16:45:13.735 18311-18311/? D/AndroidRuntime: Shutting down VM 08-07 16:45:13.739 18311-18311/? E/AndroidRuntime: FATAL EXCEPTION: main Process: eldarcreative.myapplication, PID: 18311 java.lang.RuntimeException: Unable to start activity ComponentInfo{eldarcreative.myapplication/eldarcreative.myapplication.MainActivity}: android.view.InflateException: Binary XML file line #9: Error inflating class android.support.v7.widget.RecycvlerView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2525) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2617) at android.app.ActivityThread.access$800(ActivityThread.java:182) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1474) at android.os.Handler.dispatchMessage(Handler.java:111) at android.os.Looper.loop(Looper.java:218) at android.app.ActivityThread.main(ActivityThread.java:5657) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:990) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:785) Caused by: android.view.InflateException: Binary XML file line #9: Error inflating class android.support.v7.widget.RecycvlerView at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:757) at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at android.view.LayoutInflater.inflate(LayoutInflater.java:414) at android.view.LayoutInflater.inflate(LayoutInflater.java:365) at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:292) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) at eldarcreative.myapplication.MainActivity.onCreate(MainActivity.java:32) at android.app.Activity.performCreate(Activity.java:6135) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2472) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2617)  at android.app.ActivityThread.access$800(ActivityThread.java:182)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1474)  at android.os.Handler.dispatchMessage(Handler.java:111)  at android.os.Looper.loop(Looper.java:218)  at android.app.ActivityThread.main(ActivityThread.java:5657)  at java.lang.reflect.Method.invoke(Native Method)  at java.lang.reflect.Method.invoke(Method.java:372)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:990)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:785)  Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.widget.RecycvlerView" on path: DexPathList[[zip file "/data/app/eldarcreative.myapplication-1/base.apk", zip file "/data/app/eldarcreative.myapplication-1/split_lib_dependencies_apk.apk", zip file "/data/app/eldarcreative.myapplication-1/split_lib_slice_0_apk.apk", zip file "/data/app/eldarcreative.myapplication-1/split_lib_slice_1_apk.apk", zip file "/data/app/eldarcreative.myapplication-1/split_lib_slice_2_apk.apk", zip file "/data/app/eldarcreative.myapplication-1/split_lib_slice_3_apk.apk", zip file "/data/app/eldarcreative.myapplication-1/split_lib_slice_4_apk.apk", zip file "/data/app/eldarcreative.myapplication-1/split_lib_slice_5_apk.apk", zip file "/data/app/eldarcreative.myapplication-1/split_lib_slice_6_apk.apk", zip file "/data/app/eldarcreative.myapplication-1/split_lib_slice_7_apk.apk", zip file "/data/app/eldarcreative.myapplication-1/split_lib_slice_8_apk.apk", zip file "/data/app/eldarcreative.myapplication-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:511) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) at android.view.LayoutInflater.createView(LayoutInflater.java:571) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)  at android.view.LayoutInflater.inflate(LayoutInflater.java:504)  at android.view.LayoutInflater.inflate(LayoutInflater.java:414)  at android.view.LayoutInflater.inflate(LayoutInflater.java:365)  at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:292)  at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)  at eldarcreative.myapplication.MainActivity.onCreate(MainActivity.java:32)  at android.app.Activity.performCreate(Activity.java:6135)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2472)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2617)  at android.app.ActivityThread.access$800(ActivityThread.java:182)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1474)  at android.os.Handler.dispatchMessage(Handler.java:111)  at android.os.Looper.loop(Looper.java:218)  at android.app.ActivityThread.main(ActivityThread.java:5657)  at java.lang.reflect.Method.invoke(Native Method)  at java.lang.reflect.Method.invoke(Method.java:372)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:990)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:785)  Suppressed: java.lang.ClassNotFoundException: android.support.v7.widget.RecycvlerView at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:504) ... 23 more Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

Main Acitvity.java

public class MainActivity extends AppCompatActivity {

    CustomAdapter adapter;
    RecyclerView mrecyclerview;
    List<Result> resultList = new ArrayList<>();
    RecyclerView.LayoutManager layoutmanager;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mrecyclerview= (RecyclerView) findViewById(R.id.recyclerview);
        layoutmanager = new LinearLayoutManager(this);
        adapter = new CustomAdapter(resultList);
        mrecyclerview.setAdapter(adapter);
        mrecyclerview.setLayoutManager(new GridLayoutManager(MainActivity.this,2));
        new RequestMovie().execute("popular");
    }
    @Override
    public boolean onCreateOptionsMenu (Menu menu){
        getMenuInflater().inflate(R.menu.menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
       if (item.getItemId()== R.id.action_popular){
           new RequestMovie().execute("popular");
       } else if (item.getItemId()==R.id.action_top_rated){
           new RequestMovie().execute("top_rated");
       }

        return super.onOptionsItemSelected(item);
    }

    private class RequestMovie extends AsyncTask<String,Void,Void>{
        @Override
        protected Void doInBackground(String... params) {
            String kategori = params[0];
            if (kategori.equals("popular")){
                ApiInterface apiInterface = ApiClient.getRetrofit()
                        .create(ApiInterface.class);
                Call <EldarMovie> call = apiInterface.getPopular();
                call.enqueue(new Callback<EldarMovie>() {
                    @Override
                    public void onResponse(Call<EldarMovie> call, Response<EldarMovie> response) {
                        EldarMovie movie=response.body();
                        adapter.setData(movie.getResults());
                    }

                    @Override
                    public void onFailure(Call<EldarMovie> call, Throwable t) {

                    }
                });


            } 
            return null;
        }
    }
}

Main Activity.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="eldarcreative.myapplication.MainActivity">

    <android.support.v7.widget.RecycvlerView

        android:id="@+id/recyclerview"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent">

    </android.support.v7.widget.RecycvlerView>

</LinearLayout>

I read some other case which already posted here, but I still didn't find any clue how to fix my case.

Any idea?

1
You need to show us the code.In the Logcat,I saw ClassNotFoundException: android.support.v7.widget.RecycvlerView.So you can check it. - KeLiuyue
what its mean...? - aldin_salossa
You problem is ClassNotFoundException: android.support.v7.widget.RecycvlerView.You can find it and solve it by yourself.Also,you can show us the code and I will find it and solve it. - KeLiuyue
already edit .. i add my main activity.Java, - aldin_salossa
Could you show me the activity_main.xml ? - KeLiuyue

1 Answers

0
votes

replace android.support.v7.widget.RecycvlerView with android.support.v7.widget.RecyclerView