Vous recherchez une mauvaise classe de fragments avec la bibliothèque de compatibilité Android
Je suis en train de gonfler un modèle contenant un Fragment à l'aide de la rétro-compatibilité et de package SDK niveau 10. J'ai pris le fichier jar et placé dans le dossier libs de mon projet. J'ai étendu FragmentActivity.
Tout fonctionne parfaitement quand je le lance à l'API de niveau 11 sur un XLarge écran de l'appareil.
Quand je revenir à la compilation contre le niveau 10, et en cours d'exécution sur une taille normale de l'écran, j'obtiens l'échec, au point où il la création d'une Activité et de gonfler le fragment.
Causés par:
java.lang.ClassNotFoundException:
android.vue.fragment de chargeur
dalvik.système.PathClassLoader[/data/app/com.motoappsummitagenda-1.apk]
04-01 01:07:14.311 2870 2870 E
AndroidRuntime:
dalvik.système.PathClassLoader.findClass(PathClassLoader.java:243)
De sorte qu'il ressemble à quelque chose, quelque part, est à la recherche pour les téléphones android.vue.fragment, et non pas la version de compatibilité, android.de soutien.v4.app.Le Fragment. Bien sûr, android.vue.fragment ne se trouve sur l'API de niveau 10. Mais où est qui android.vue.fragment en venir?
Le XML qui est gonflé est
<?xml version="1.0" encoding="utf-8"?>
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:name="com.motorapp.SessionFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/sessionfragment">
</fragment>
Le code pour qu'il démarre:
package com.motorapp;
import java.util.List;
import java.util.ListIterator;
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.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
import android.support.v4.app.*;
import android.support.v4.util.*;
import android.support.v4.*;
import android.support.v4.widget.*;
public class SessionFragment extends android.support.v4.app.Fragment {
Les symptômes sont similaires à ce problème, mais je n'ai pas ces erreurs
gonfler les fragments avec le package de compatibilité android
Le android.la compatibilité.v4.android-support-v4 fichier jar est sur mon chemin de génération dans Eclipse
dans le cadre du Projet > Propriétés > Java build path
J'ai dans le manifeste (et j'ai essayé différentes variantes du nom).
Dans la mise en route avec des fragments, j'ai d'abord utilisé l'API 11 sur un nid d'abeilles de l'appareil, et que tout fonctionne parfaitement. C'est en obtenant le même code (modifié pour utiliser le légèrement différente de la compatibilité de l'API), en collaboration avec la bibliothèque de compatibilité que j'ai ce problème. Toutes les idées seront les bienvenues. Merci,
Peter
source d'informationauteur Peter vdL
Vous devez vous connecter pour publier un commentaire.
J'ai eu la même mauvaise classe de problème avec la bibliothèque de compatibilité et essayé tout ce qui est mentionné ci-dessus avec pas de chance. J'ai enfin compris: j'ai été en utilisant la mauvaise élément XML
Fragment
plutôt que de corriger unfragment
. La capitalisation semble à la matière.Je viens de résoudre ce problème dans l'API Android 8 de la machine (Samsung Galaxy S).
S'il vous plaît changer
Activity
classe deFragmentActivity
.public class FragmentLayout extends Activity {}
-->
public class FragmentLayout extends FragmentActivity {}
public static class DetailsActivity extends Activity {}
-->
public static class DetailsActivity extends FragmentActivity {}
enfin
getFragmentManager()
-->getSupportFragmentManager()
registre android-support-v4.jar Eclipse est référencé Bibliothèques
mettre android-support-v4.jar {répertoire racine de votre projet}/répertoire libs
changement d'API 10 enum (ex:simple_list_item_1) à partir de simple_list_item_activated_1
import android.support.v4.app.Fragment;
Je parie que vous essayez d'appeler
setConetentView
avantsuper.onCreate
dans votreFragmentActivity
J'ai eu exactement ce problème avec une application en cours d'exécution sur pré-Nid d'appareils. J'ai basé mon Fragment de codage sur l'exemple donné dans Dianne Hackborn de Février 2011 billet de blog et d'autres Fragment d'un matériau de référence. La solution à ces problèmes est contenue dans le kit de développement SDK lien de référence, http://developer.android.com/sdk/compatibility-library.html#Using. Il existe des différences mineures dans la classe et les noms de méthode qui doit être utilisée dans des applications avec des Fragments, lorsque ces applications sont déployées avec la bibliothèque de Compatibilité. Le lien explique cette.
La bibliothèque de compatibilité, téléchargé et installé, inclut des exemples de code à l'aide de Fragments. Ref: Les Développeurs Android > Ressources > Exemple de Code > API, 4+ Support Démos
Les importations que vous avez fourni tous l'air correct. Faire un double contrôle de toutes les autres classes pour s'assurer de l'Éclipse n'a pas d'importation automatique de la mauvaise Fragment de certains où les. L'autre chose qui est essentiel est que vous devez ajouter à la bibliothèque de compatibilité pour une lib\ que vous devez créer à votre racine du projet pour faire en sorte qu'il soit fourni avec votre application. Je ne sais pas si c'est nécessaire, mais j'ai toujours mon projet de construction de chemin d'accès reportez-vous à la copie.
Votre mise en page semble manquer le paramètre classe. Je pense que vous vouliez dire à l'utilisation de la classe où vous avez utilisé le nom de votre mise en page.
Dans Eclipse, vous devriez voir android-support-v4.jar sous les deux Référencé Bibliothèques et les bibliothèques.
Je pense que vous devriez supprimer android-support-v4.jar de build path. Ce sera l'enlever de bibliothèques référencées dans Eclipse. Que creace dossier libs et mettre le pot dans. Nettoyer votre projet et Eclipse va ajouter le jar Android dépendances. Cela a fait l'affaire pour moi que je me débattais avec la classe ne trouve pas exception.
J'ai eu le
sur
lors de la tentative de faire une api 17 app compatible avec l'api 8, la seule indication était le logcat d'erreur ci-dessus, afin de vérifier que tous vos classes importées sont pris en charge si vous obtenez cette erreur.