2014-01-10 90 views
2

请看下面,我得到一个无法实例化类:当试图运行我的“HomeFragmentListExpand”类时,LogCat中没有空的构造函数错误,即使我清楚地有一个空的构造函数那里。Android:无法实例化类:没有空的构造函数

import android.app.Fragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 

import android.app.Activity; 
import android.content.Intent; 
import android.util.SparseArray; 
import android.widget.ExpandableListView; 

public class HomeFragment extends Fragment { 
public HomeFragment(){} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
    Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.fragment_home, container, false); 

    Intent intent = new Intent(getActivity(), HomeFragmentListExpand.class); 
    startActivity(intent); 

    return rootView; 

} 

public class HomeFragmentListExpand extends Activity { 

    public HomeFragmentListExpand(){ 
     super(); 
    } 


    // more efficient than HashMap for mapping integers to objects 
    SparseArray<Group> groups = new SparseArray<Group>(); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.fragment_home); 
     createData(); 
     ExpandableListView listView = (ExpandableListView) findViewById(R.id.listView); 
     MyExpandableListAdapter adapter = new MyExpandableListAdapter(this, 
       groups); 
     listView.setAdapter(adapter); 
     } 
    public void createData() { 
     for (int j = 0; j < 5; j++) { 
      Group group = new Group("Test " + j); 
      for (int i = 0; i < 5; i++) { 
       group.children.add("Sub Item" + i); 
       } 
      groups.append(j, group); 
     } 
     } 
    } 

} 

logcat的.........

01-10 16:41:45.143: E/AndroidRuntime(24809): FATAL EXCEPTION: main 
01-10 16:41:45.143: E/AndroidRuntime(24809): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.smarte.smarteproducts/com.smarte.smarteproducts.HomeFragment$HomeFragmentListExpand}: java.lang.InstantiationException: can't instantiate class com.smarte.smarteproducts.HomeFragment$HomeFragmentListExpand; no empty constructor 
01-10 16:41:45.143: E/AndroidRuntime(24809): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2435) 
01-10 16:41:45.143: E/AndroidRuntime(24809): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2574) 
01-10 16:41:45.143: E/AndroidRuntime(24809): at android.app.ActivityThread.access$600(ActivityThread.java:162) 
01-10 16:41:45.143: E/AndroidRuntime(24809): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1413) 
01-10 16:41:45.143: E/AndroidRuntime(24809): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-10 16:41:45.143: E/AndroidRuntime(24809): at android.os.Looper.loop(Looper.java:158) 
01-10 16:41:45.143: E/AndroidRuntime(24809): at android.app.ActivityThread.main(ActivityThread.java:5789) 
01-10 16:41:45.143: E/AndroidRuntime(24809): at java.lang.reflect.Method.invokeNative(Native Method) 
01-10 16:41:45.143: E/AndroidRuntime(24809): at java.lang.reflect.Method.invoke(Method.java:525) 
01-10 16:41:45.143: E/AndroidRuntime(24809): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027) 
01-10 16:41:45.143: E/AndroidRuntime(24809): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:843) 
01-10 16:41:45.143: E/AndroidRuntime(24809): at dalvik.system.NativeStart.main(Native Method) 
01-10 16:41:45.143: E/AndroidRuntime(24809): Caused by: java.lang.InstantiationException: can't instantiate class com.smarte.smarteproducts.HomeFragment$HomeFragmentListExpand; no empty constructor 
01-10 16:41:45.143: E/AndroidRuntime(24809): at java.lang.Class.newInstanceImpl(Native Method) 
01-10 16:41:45.143: E/AndroidRuntime(24809): at java.lang.Class.newInstance(Class.java:1130) 
01-10 16:41:45.143: E/AndroidRuntime(24809): at android.app.Instrumentation.newActivity(Instrumentation.java:1079) 
01-10 16:41:45.143: E/AndroidRuntime(24809): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2426) 
01-10 16:41:45.143: E/AndroidRuntime(24809): ... 11 more 
01-10 16:46:46.023: D/Process(24809): killProcess, pid=24809 
01-10 16:46:46.023: D/Process(24809): com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException:123 java.lang.ThreadGroup.uncaughtException:693 java.lang.ThreadGroup.uncaughtException:690 

Android清单....

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.smarte.smarteproducts" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="14" 
    android:targetSdkVersion="19" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/Theme.Smartestyle" > 
    <activity 
     android:name="com.smarte.smarteproducts.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name="com.smarte.smarteproducts.HomeFragment$HomeFragmentListExpand" /> 
</application> 

+0

你称之为片段,但它扩展了活动? – cYrixmorten

+0

你有一个活动类作为片段的内部类?张贴您的清单。我猜你很困惑 – Raghunandan

+0

是的,因为我无法将活动类的内容放入片段类中。 –

回答

1

这是漫长的一天,我是只是愚蠢。 感谢@Raghunandan向我指出这一点。

我将HomeFragmentListExpand移动到它自己的类中,并更改了清单和所有好的东西。

谢谢各位/女孩。

+1

你也应该删除活动的构造函数 – Raghunandan

+0

我面临同样的问题,虽然我的应用程序工作正常,突然它开始给这个错误,任何想法为什么这样 – Yasha

相关问题