[英]I want to start activity from fragment but It get crashed
Its the error log of Android Studio where 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)
Its Tab 3 where I call the start activity from fragment:在它的 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;
}
}
Here is the Main2Activity.java Which I would like to call but it get crashes whenever I call it.这是我想调用的 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 ();
}
}
}
Whenever I click on the Item of the listview app get crashed.每当我点击 listview 应用程序的项目时就会崩溃。 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.
因为我是 Android 开发的新手。 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
.您遇到此问题是因为 android 找不到您的外部库类
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
The exception is about Multidex.例外是关于 Multidex。
In summary, Android can support 64K methods.综上所述,Android 可以支持 64K 方法。 But you are using many libraries.
但是您正在使用许多库。 So the number of total methods is bigger than 64K.
所以总方法数大于64K。 The exception means it.
例外就是这个意思。
To resolve this, you should use Multidex.要解决此问题,您应该使用 Multidex。 It is not difficult.
这并不困难。 You just edit your manifest file, build.gradle file.
您只需编辑清单文件 build.gradle 文件。
You can find more information: https://developer.android.com/studio/build/multidex.html您可以找到更多信息: https : //developer.android.com/studio/build/multidex.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.