android.app.Fragment$InstantiationException:无法实例化
片段:确保类名存在、是公共的并且有一个空
构造函数是公共的。
我意识到有很多关于同一错误的问题,但到目前为止没有一个对我有帮助。我正在从一本书中学习,并且之前实际上运行过准确的(99%确定)代码。全部删除并重写以供审核后,出现错误。
package com.paad.todolist;
import android.app.ListFragment;
import android.os.Bundle;
public class ToDoListFragment extends ListFragment{
public static ToDoListFragment newInstance(int index) {
ToDoListFragment f = new ToDoListFragment();
Bundle args = new Bundle();
args.putInt("index", index);
f.setArguments(args);
return f;
}
}
LogCat:
06-16 03:04:14.091:E/AndroidRuntime(836):致命异常:主要 06-16
03:04:14.091:E/AndroidRuntime(836):java.lang.RuntimeException:
无法开始活动
组件信息{com.paad.todolist/com.paad.todolist.ToDoListActivity}:
android.view.InflateException:二进制 XML 文件第 13 行:错误
膨胀类片段 06-16 03:04:14.091: E/AndroidRuntime(836):
在
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
06-16 03:04:14.091: E/AndroidRuntime(836): 在
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
06-16 03:04:14.091: E/AndroidRuntime(836): 在
android.app.ActivityThread.access$600(ActivityThread.java:123) 06-16
03:04:14.091:E/AndroidRuntime(836):在
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
06-16 03:04:14.091: E/AndroidRuntime(836): 在
android.os.Handler.dispatchMessage(Handler.java:99) 06-16
03:04:14.091:E/AndroidRuntime(836):在
android.os.Looper.loop(Looper.java:137) 06-16 03:04:14.091:
E/Android运行时(836):位于
android.app.ActivityThread.main(ActivityThread.java:4424) 06-16
03:04:14.091:E/AndroidRuntime(836):在
java.lang.reflect.Method.invokeNative(原生方法) 06-16
03:04:14.091:E/AndroidRuntime(836):在
java.lang.reflect.Method.invoke(Method.java:511) 06-16 03:04:14.091:
E/Android运行时(836):位于
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-16 03:04:14.091: E/AndroidRuntime(836): 在
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 06-16
03:04:14.091:E/AndroidRuntime(836):在
dalvik.system.NativeStart.main(本机方法) 06-16 03:04:14.091:
E/AndroidRuntime(836):由以下原因引起:android.view.InflateException:
二进制 XML 文件行 #13:膨胀类片段 06-16 时出错
03:04:14.091:E/AndroidRuntime(836):在
android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
06-16 03:04:14.091: E/AndroidRuntime(836): 在
android.view.LayoutInflater.rInflate(LayoutInflater.java:739) 06-16
03:04:14.091:E/AndroidRuntime(836):在
android.view.LayoutInflater.inflate(LayoutInflater.java:489) 06-16
03:04:14.091:E/AndroidRuntime(836):在
android.view.LayoutInflater.inflate(LayoutInflater.java:396) 06-16
03:04:14.091:E/AndroidRuntime(836):在
android.view.LayoutInflater.inflate(LayoutInflater.java:352) 06-16
03:04:14.091:E/AndroidRuntime(836):在
com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251)
06-16 03:04:14.091: E/AndroidRuntime(836): 在
android.app.Activity.setContentView(Activity.java:1835) 06-16
03:04:14.091:E/AndroidRuntime(836):在
com.paad.todolist.ToDoListActivity.onCreate(ToDoListActivity.java:18)
06-16 03:04:14.091: E/AndroidRuntime(836): 在
android.app.Activity.performCreate(Activity.java:4466) 06-16
03:04:14.091:E/AndroidRuntime(836):在
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
06-16 03:04:14.091: E/AndroidRuntime(836): 在
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
06-16 03:04:14.091: E/AndroidRuntime(836): ... 11 更多 06-16
03:04:14.091:E/AndroidRuntime(836):原因:
android.app.Fragment$InstantiationException:无法实例化
片段 com.paad.todoList.ToDoListFragment:确保类名
存在,是公共的,并且有一个公共的空构造函数 06-16
03:04:14.091:E/AndroidRuntime(836):在
android.app.Fragment.instantiate(Fragment.java:585) 06-16
03:04:14.091:E/AndroidRuntime(836):在
android.app.Fragment.instantiate(Fragment.java:549) 06-16
03:04:14.091:E/AndroidRuntime(836):在
android.app.Activity.onCreateView(Activity.java:4235) 06-16
03:04:14.091:E/AndroidRuntime(836):在
android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:673)
06-16 03:04:14.091: E/AndroidRuntime(836): ... 21 更多 06-16
03:04:14.091:E/AndroidRuntime(836):原因:
java.lang.ClassNotFoundException: com.paad.todoList.ToDoListFragment
06-16 03:04:14.091: E/AndroidRuntime(836): 在
dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
06-16 03:04:14.091: E/AndroidRuntime(836): 在
java.lang.ClassLoader.loadClass(ClassLoader.java:501) 06-16
03:04:14.091:E/AndroidRuntime(836):在
java.lang.ClassLoader.loadClass(ClassLoader.java:461) 06-16
03:04:14.091:E/AndroidRuntime(836):在
android.app.Fragment.instantiate(Fragment.java:571) 06-16
03:04:14.091: E/AndroidRuntime(836): ... 24 更多
发现,你的 logcat 说明了一切
Caused by: java.lang.ClassNotFoundException: com.paad.todoList.ToDoListFragment
您的包名称不正确。使用com.paad.todolist
代替com.paad.todoList
这篇文章让我想起了电视节目的对话,夏洛克:你看到但你没有观察 :) :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)