Reputation: 9
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?
Upvotes: 0
Views: 155
Reputation: 1009
replace android.support.v7.widget.RecycvlerView
with android.support.v7.widget.RecyclerView
Upvotes: 0