繁体   English   中英

我想从片段开始活动,但它崩溃了

[英]I want to start activity from fragment but It get crashed

它是 Android Studio 崩溃的错误日志。

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)

在它的 Tab 3 中,我从片段调用开始活动:

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;
    }
}

这是我想调用的 Main2Activity.java,但是每当我调用它时它都会崩溃。

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 ();
        }
    }
}

每当我点击 listview 应用程序的项目时就会崩溃。 我什至尝试尝试和捕获方法来检测问题。我应该怎么做才能调用活动并从应用程序中删除此崩溃。 因为我是 Android 开发的新手。 帮助我摆脱这个问题

您遇到此问题是因为 android 找不到您的外部库类com.github.mikephil.charting.charts.PieChart

在您的错误日志中,清楚地提到了这一点。

Binary XML file line #0: Error inflating class com.github.mikephil.charting.charts.PieChart
  • 首先,您必须清理并重建您的项目。看看问题是否已解决。
  • 检查您图书馆的 github 文档,了解如何将其集成到 Android 中。

例外是关于 Multidex。

综上所述,Android 可以支持 64K 方法。 但是您正在使用许多库。 所以总方法数大于64K。 例外就是这个意思。

要解决此问题,您应该使用 Multidex。 这并不困难。 您只需编辑清单文件 build.gradle 文件。

您可以找到更多信息: https : //developer.android.com/studio/build/multidex.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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