2013-02-26 13 views
1

由於我認爲是一個奇怪的錯誤,我的應用程序在啓動時崩潰。我已經包括下面的logcat以及相關的佈局,但正如你所看到的,有一個類android.view.fragment的類沒有發現異常引起的膨脹異常。我沒有使用兼容性片段(該應用程序不支持pre-ICS),因此所有內容都預計爲android.app.Fragment。我已經能夠找到的所有其他帖子建議使用FragmentActivity,但這不是一個解決方案,因爲我們不使用支持庫。有沒有人有任何見解?ClassNotFoundException當膨脹非兼容性片段時

佈局文件:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/locations" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <!-- Some views here --> 

    <!-- The line below is line 38 referenced in the LogCat --> 
    <fragment 
     android:id="@+id/ad_fragment" 
     android:name="tenkiv.billing.AdFragment" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     tools:layout="@layout/ad_fragment_view" /> 

</RelativeLayout> 

而且logcat的輸出:

FATAL EXCEPTION: main 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tenkiv.environment.application/com.tenkiv.environment.application.EnvironmentMainActivity}: android.view.InflateException: Binary XML file line #38: Error inflating class fragment 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
    at android.app.ActivityThread.access$600(ActivityThread.java:141) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:5041) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
    at dalvik.system.NativeStart.main(Native Method) 
Caused by: android.view.InflateException: Binary XML file line #38: Error inflating class fragment 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:698) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
    at com.slidingmenu.lib.SlidingMenu.setMenu(SlidingMenu.java:384) 
    at com.tenkiv.environment.application.EnvironmentMainActivity.onCreate(EnvironmentMainActivity.java:335) 
    at android.app.Activity.performCreate(Activity.java:5104) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
    ... 11 more 
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.fragment" on path: /data/app/com.tenkiv.environment.application-2.apk 
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
    at android.view.LayoutInflater.createView(LayoutInflater.java:552) 
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:643) 
    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66) 
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
    ... 20 more 
+0

是否嘗試對''android.view.fragment「'進行項目搜索以查看它是否發生在任何地方? – 2013-02-26 18:14:13

回答

1

我不知道通過嘗試給全名這樣

<fragment android:id="@+id/fragmentDetails" 
android:layout_height="fill_parent" 
android:layout_width="fill_parent" 
class="tenkiv.billing.AdFragment"/> 
+0

結果在膨脹異常「類不是視圖」 – Jared 2013-02-26 18:06:45

+0

是tenkiv.billing.AdFragment這是您的自定義類擴展片段..? – Pragnani 2013-02-26 18:08:07

+0

給予class屬性我也會編輯 – Pragnani 2013-02-26 18:09:58

0

請確保在你的FragmentActivity類中,你也可以調用超類的onCreate方法:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
.... 
} 
0

這個問題可能是愚蠢的東西,如錯別字或奇怪的不可見的字符被注入到您的XML標記引起的。在我的情況下,原因是我的「片段」打開標記中的拼寫錯誤。我有「frsgment」,當然Android Studio並沒有舉起一面旗幟。我花了一段時間才弄清楚。不好!