2014-01-10 92 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

相關問題