2013-02-26 1 views
1

Mon application se bloque au démarrage en raison de ce qui me semble être une erreur étrange. J'ai inclus le logcat ci-dessous ainsi que la mise en page pertinente, mais comme vous pouvez le voir, il existe une exception de gonflement causée par une exception de classe non trouvée pour la classe android.view.fragment. Je n'utilise pas de fragments de compatibilité (l'application ne supporte pas pré-ICS) et donc tout attend android.app.Fragment. Tous les autres messages que j'ai pu trouver suggèrent d'utiliser FragmentActivity mais ce n'est pas une solution ici car nous n'utilisons pas la bibliothèque de support. Quelqu'un at-il une idée?ClassNotFoundException lors du gonflement d'un fragment de non-compatibilité

Le fichier de mise en page:

<?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> 

Et la sortie 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

Avez-vous essayé de faire une recherche à l'ensemble du projet '' android.view.fragment "' pour voir si cela se produit quelque part? –

Répondre

1

Je ne suis pas sûr d'essayer de donner le nom complet comme celui-ci

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

Résultats dans une exception de gonflement "Classe n'est pas une vue" – Jared

+0

est tenkiv.billing.AdFragment cette classe personnalisée qui étend le fragment ..? – Pragnani

+0

Donner aussi l'attribut class – Pragnani

0

S'il vous plaît assurez-vous que Dans votre classe FragmentActivity, vous appelez également la méthode onCreate de la super classe:

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

Ce problème peut être dû à des choses idiotes comme des fautes de frappe ou à l'intrusion de caractères invisibles dans vos balises xml. Dans mon cas, la cause était une faute de frappe dans mon tag d'ouverture "fragment". J'ai eu "frsgment" à la place et bien sûr Android Studio n'a pas soulevé de drapeau. Il m'a fallu du temps pour comprendre. Pas bon!

Questions connexes