简体   繁体   中英

I want to start activity from fragment but It get crashed

Its the error log of Android Studio where it get crashed.

02-08 10:56:28.746 9956-9956/lifeline.learn.com.slidingfragments E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                   Process: lifeline.learn.com.slidingfragments, PID: 9956
                                                                                   java.lang.RuntimeException: Unable to start activity ComponentInfo{lifeline.learn.com.slidingfragments/lifeline.learn.com.slidingfragments.Main2Activity}: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class com.github.mikephil.charting.charts.PieChart
                                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2984)
                                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045)
                                                                                       at android.app.ActivityThread.-wrap14(ActivityThread.java)
                                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1642)
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                       at android.os.Looper.loop(Looper.java:154)
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:6776)
                                                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518)
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)
                                                                                    Caused by: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class com.github.mikephil.charting.charts.PieChart
                                                                                    Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class com.github.mikephil.charting.charts.PieChart
                                                                                    Caused by: java.lang.ClassNotFoundException: Didn't find class "com.github.mikephil.charting.charts.PieChart" on path: DexPathList[[zip file "/data/app/lifeline.learn.com.slidingfragments-1/base.apk", zip file "/data/app/lifeline.learn.com.slidingfragments-1/split_lib_dependencies_apk.apk", zip file "/data/app/lifeline.learn.com.slidingfragments-1/split_lib_slice_0_apk.apk", zip file "/data/app/lifeline.learn.com.slidingfragments-1/split_lib_slice_1_apk.apk", zip file "/data/app/lifeline.learn.com.slidingfragments-1/split_lib_slice_2_apk.apk", zip file "/data/app/lifeline.learn.com.slidingfragments-1/split_lib_slice_3_apk.apk", zip file "/data/app/lifeline.learn.com.slidingfragments-1/split_lib_slice_4_apk.apk", zip file "/data/app/lifeline.learn.com.slidingfragments-1/split_lib_slice_5_apk.apk", zip file "/data/app/lifeline.learn.com.slidingfragments-1/split_lib_slice_6_apk.apk", zip file "/data/app/lifeline.learn.com.slidingfragments-1/split_lib_slice_7_apk.apk", zip file "/data/app/lifeline.learn.com.slidingfragments-1/split_lib_slice_8_apk.apk", zip file "/data/app/lifeline.learn.com.slidingfragments-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/lifeline.learn.com.slidingfragments-1/lib/arm, /system/lib, /vendor/lib]]
                                                                                       at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                                                                                       at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
                                                                                       at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
                                                                                       at android.view.LayoutInflater.createView(LayoutInflater.java:616)
                                                                                       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:794)
                                                                                       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:734)
                                                                                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:865)
                                                                                       at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828)
                                                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:525)
                                                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:427)
                                                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:378)
                                                                                       at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287)
                                                                                       at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
                                                                                       at lifeline.learn.com.slidingfragments.Main2Activity.onCreate(Main2Activity.java:23)
                                                                                       at android.app.Activity.performCreate(Activity.java:6956)
                                                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126)
                                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2927)
                                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045)
                                                                                       at android.app.ActivityThread.-wrap14(ActivityThread.java)
02-08 10:56:28.746 9956-9956/lifeline.learn.com.slidingfragments E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1642)
                                                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                       at android.os.Looper.loop(Looper.java:154)
                                                                                       at android.app.ActivityThread.main(ActivityThread.java:6776)
                                                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518)
                                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)

Its Tab 3 where I call the start activity from fragment:

public class Tab3 extends android.support.v4.app.Fragment {
    Context context;
    FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance ();
    DatabaseReference databaseReference = firebaseDatabase.getReference ();
    private JazzyListView listView;
    ArrayAdapter<String> listAdapter;
    List<String> ListString = new ArrayList<> ();
    View view;
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        context = getContext ();
        view = inflater.inflate (R.layout.fragment_tab3, container, false);
        listView = (JazzyListView) view.findViewById (R.id.listview);
        ListString.add ("Adding");
        listAdapter = new ArrayAdapter<String> (context, android.R.layout.simple_list_item_1, ListString);
        final Connectivity connectivity = new Connectivity (context);
        if(connectivity.isConnected ()){
            databaseReference.addValueEventListener (new ValueEventListener () {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    ListString.remove ("Adding");
                    DataSnapshot snapshot = dataSnapshot.child ("User");
                    for(DataSnapshot s: snapshot.getChildren ())
                    {
                        if(s.getValue ().toString ().isEmpty ())
                            Toast.makeText (context, "Empty", Toast.LENGTH_SHORT).show ();
                        else{
                            ListString.add(s.getKey ().toString ());
                        }
                    }
                    listAdapter.notifyDataSetChanged ();
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {
                    Toast.makeText (context, databaseError.getMessage (), Toast.LENGTH_SHORT).show ();
                }
            });
            listView.setAdapter (listAdapter);
            listView.setOnItemClickListener (new AdapterView.OnItemClickListener () {
                @Override
                public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                    String name = adapterView.getItemAtPosition (i).toString ();
                    Intent intent = new Intent (getActivity (), Main2Activity.class).putExtra("name", name);
                    try {
                        getActivity ().startActivity (intent);
                    }catch (Exception e){
                        Toast.makeText (context, e.getMessage (), Toast.LENGTH_SHORT).show ();
                    }
                }
            });
        }



        return view;
    }
}

Here is the Main2Activity.java Which I would like to call but it get crashes whenever I call it.

public class Main2Activity extends AppCompatActivity {

    int present =0,absent=0, late=0;
    FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance ();
    DatabaseReference databaseReference = firebaseDatabase.getReference ();
    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_main2);
        String name = getIntent ().getStringExtra ("name");
        //pieChart = (PieChart) findViewById (R.id.pie);
        try {
            //pieChart.setCenterText ("Children");
            //pieChart.setCenterTextSize (10f);
            databaseReference.addValueEventListener (new ValueEventListener () {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    DataSnapshot snapshot = dataSnapshot.child ("Attendence");
                    for(DataSnapshot snapshot1 : snapshot.getChildren ()){
                        DataSnapshot snapshot2 = snapshot.child (snapshot1.getKey ());
                        for(DataSnapshot name: snapshot2.getChildren ()){
                            if(name.getKey ().equals (name)){
                                Log.e ("Got children","");
                            }
                        }
                    }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });
        }catch (Exception e){
            Toast.makeText (this, e.getMessage (), Toast.LENGTH_SHORT).show ();
        }
    }
}

Whenever I click on the Item of the listview app get crashed. I even tried try and catch method to detect the problem.What should I do to call the activity and remove this crash from the app. As I am new to Android Development. Help me to get out of this problem

You are having this problem because android can't find your external library class com.github.mikephil.charting.charts.PieChart .

In your error log , It is clearly mentioned .

Binary XML file line #0: Error inflating class com.github.mikephil.charting.charts.PieChart
  • first of all you have to clean and rebuild your project .See if problem fixed.
  • check your library's github document about how to integrate it in Android.

The exception is about Multidex.

In summary, Android can support 64K methods. But you are using many libraries. So the number of total methods is bigger than 64K. The exception means it.

To resolve this, you should use Multidex. It is not difficult. You just edit your manifest file, build.gradle file.

You can find more information: https://developer.android.com/studio/build/multidex.html

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM