2012-01-31 87 views
1

Possible Duplicate:
Exception right off the batAction Bar Sherlock + Fragments?

我想在安裝操作欄Sherlock後在我的主頁上使用儀表板片段。我發現了錯誤:

「錯誤充氣類片段」

我已經安裝了操作欄福爾摩斯作爲庫項目。這裏是XAML:

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 

<Fragment 
    class="myVirtualHealthCheck.com.Android.fragments.DashboardFragment" 
    android:layout_width="fill_parent" 
    android:layout_height="0dip"/> 

</LinearLayout> 

aMainMenu.java

package myVirtualHealthCheck.com.Android.ui; 

import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.net.URI; 

import myVirtualHealthCheck.com.Android.R; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.DefaultHttpClient; 

import android.content.Intent; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.util.Log; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 


public class aMainMenu extends FragmentActivity{ 

DashboardFragment.java:

package myVirtualHealthCheck.com.Android.fragments; 

    import myVirtualHealthCheck.com.Android.R; 
    import myVirtualHealthCheck.com.Android.ui.aNutritionLookup; 
    import myVirtualHealthCheck.com.Android.ui.aPlaces; 
    import myVirtualHealthCheck.com.Android.ui.aVitalAdd; 
    import myVirtualHealthCheck.com.Android.ui.aVitalsMy; 
    import myVirtualHealthCheck.com.Android.utils.AnalyticsUtils; 
    import android.content.Intent; 
    import android.net.Uri; 
    import android.os.Bundle; 
    import android.support.v4.app.Fragment; 
    import android.view.LayoutInflater; 
    import android.view.View; 
    import android.view.ViewGroup; 


    public class DashboardFragment extends Fragment { 

    public void fireTrackerEvent(String label) { 
     AnalyticsUtils.getInstance(getActivity()).trackEvent("Home Screen Dashboard", "Click", label, 0); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View root = inflater.inflate(R.layout.fragment_dashboard, container); 

     // MY VITALS *CLICK* 
     root.findViewById(R.id.btnVitalsMy).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       fireTrackerEvent("VitalsMy"); 
       startActivity(new Intent(getActivity(), aVitalsMy.class)); 
      } 
     }); 

     // ADD VITAL *CLICK* 
     root.findViewById(R.id.btnVitalAdd).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       fireTrackerEvent("VitalAdd"); 
       startActivity(new Intent(getActivity(), aVitalAdd.class)); 
      } 
     }); 

     // NUTRITION *CLICK* 
     root.findViewById(R.id.btnNutrition).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       fireTrackerEvent("NutritionLookup"); 
       startActivity(new Intent(getActivity(), aNutritionLookup.class));     
      } 
     }); 

     // PLACES *CLICK* 
     root.findViewById(R.id.btnPlaces).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       fireTrackerEvent("Places"); 
       startActivity(new Intent(getActivity(), aPlaces.class));     
      } 
     }); 

     // TWITTER *CLICK* 
     root.findViewById(R.id.btnTwitter).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       fireTrackerEvent("Twitter"); 
       startActivity(new Intent("android.intent.action.VIEW", Uri.parse("http://twitter.com/#!/WellnessCheck")));     
      } 
     }); 

     // Facebook *CLICK* 
     root.findViewById(R.id.btnFacebook).setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       fireTrackerEvent("Facebook"); 
       startActivity(new Intent("android.intent.action.VIEW", Uri.parse("http://www.facebook.com/myvhc")));     
      } 
     }); 



     return root; 
    } 
} 

這裏是logcat的:

02-01 08:53:01.014: W/dalvikvm(8023): threadid=1: thread exiting with uncaught exception (group=0x40020950) 
02-01 08:53:01.114: E/AndroidRuntime(8023): FATAL EXCEPTION: main 
02-01 08:53:01.114: E/AndroidRuntime(8023): java.lang.RuntimeException: Unable to start activity ComponentInfo{myVirtualHealthCheck.com.Android/myVirtualHealthCheck.com.Android.ui.aMainMenu}: android.view.InflateException: Binary XML file line #8: Error inflating class Fragment 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at android.os.Handler.dispatchMessage(Handler.java:99) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at android.os.Looper.loop(Looper.java:123) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at java.lang.reflect.Method.invoke(Method.java:521) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:651) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at dalvik.system.NativeStart.main(Native Method) 
02-01 08:53:01.114: E/AndroidRuntime(8023): Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class Fragment 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:576) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:618) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at android.view.LayoutInflater.inflate(LayoutInflater.java:407) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at android.support.v4.app.FragmentActivity.setContentView(FragmentActivity.java:421) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at myVirtualHealthCheck.com.Android.ui.aMainMenu.onCreate(aMainMenu.java:32) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  ... 11 more 
02-01 08:53:01.114: E/AndroidRuntime(8023): Caused by: java.lang.ClassNotFoundException: android.view.Fragment in loader dalvik.system.PathClassLoader[/data/app/myVirtualHealthCheck.com.Android-1.apk] 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at android.view.LayoutInflater.createView(LayoutInflater.java:466) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at android.view.LayoutInflater.onCreateView(LayoutInflater.java:544) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) 
02-01 08:53:01.114: E/AndroidRuntime(8023):  ... 19 more 
+0

你可以包含DashboardFragment的代碼而不是aMainMenu嗎?還可以查看此鏈接以瞭解類/軟件包的Java命名約定 - http://java.about.com/od/javasyntax/a/nameconventions.htm – scottyab 2012-01-31 18:47:00

+0

查看上面的編輯 – Jarrette 2012-01-31 19:08:54

+0

您可以獲得logcat輸出嗎? – 2012-01-31 23:18:30

回答

1

傑克沃頓商學院的解決方案中所描述他的評論工作:

Solution: use lowercase ' f ' (i.e., <fragment .. NOT <Fragment ...)

因此,我將<Fragment>更改爲<fragment>