web-dev-qa-db-fra.com

FragmentActivity ne peut pas être résolu en un type

J'essaye l'application de ce blog . Lors de l'extension de FragmentActivity, j'obtiens l'erreur suivante:

`FragmentActivity` was not able to resolve.

Suis-je en train de manquer une bibliothèque ou autre chose?

Mon code:

public class Testing_newActivity extends FragmentActivity { // here the FragmentActivity getting error package not found for import
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);
        if (getResources().getConfiguration().orientation
                == Configuration.ORIENTATION_LANDSCAPE) {
            // If the screen is now in landscape mode, we can show the
            // dialog in-line so we don't need this activity.
            finish();
            return;
        }

        if (savedInstanceState == null) {
            // During initial setup, plug in the details fragment.
            DetailsFragment details = new DetailsFragment();
            details.setArguments(getIntent().getExtras());

            getSupportFragmentManager().beginTransaction().add(
                    Android.R.id.content, details).commit();
        }       
    }
}

Fichier manifeste Android

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="com.searce.testingnew"
    Android:versionCode="1"
    Android:versionName="1.0" >

    <uses-sdk Android:minSdkVersion="11" />

    <application Android:icon="@drawable/ic_launcher" Android:label="@string/app_name" >
        <activity Android:label="@string/app_name" Android:name=".Testing_newActivity" >
            <intent-filter >
                <action Android:name="Android.intent.action.MAIN" />
                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
29
Pratik

Après avoir attendu longtemps pour cette réponse, j'ai réglé les choses et je pense que beaucoup d'autres personnes auront besoin d'une solution simple pour cette question.

Avertissement: Cette solution est destinée à l'utilisateur Eclipse qui utilise Indigo ou une version inférieure. Toujours à la recherche de solutions pour les utilisateurs qui utilisent d'autres IDE pour Android.

Lorsque vous étendez FragmentActivity pour votre application avec la version 2.2 ou inférieure, vous pouvez télécharger Android.supportv4.jar à partir de ici ou vous pouvez l'obtenir à partir de votre répertoire Android-sdk ..\Android-sdk\extras\Android\support\v4 et mettre dans votre projet.

S'il n'y a pas de bibliothèques de répertoires dans votre projet, créez un répertoire de bibliothèques et collez le fichier Android.supportv4.jar dans ce répertoire.

Dans l'espace de travail du projet Eclipse: sélectionnez project/application dans lequel vous souhaitez utiliser. Faites un clic droit sur Project et sélectionnez l'option Properties. Dans cette sélection Java build path et sélectionnez l'onglet Libraries

enter image description here

Cliquez maintenant sur Ajouter un pot. Il affichera la liste actuelle des projets avec le projet actuel sélectionné.

Développez cela et allez dans le répertoire libs et sélectionnez le fichier Android.supportv4.jar puis cliquez sur ok. Il s'affichera maintenant dans la zone de liste. Remember add the jar file as relative path path not as absolute path, so whenever if you change the directory of your project or open in another machine then will detect automatically for the project directory. Maintenant, cliquez sur Ok pour fermer la boîte de dialogue Propriétés.

Vous pouvez importer le Android.support.v4.app.FragmentActivity; en plaçant la souris sur FragmentActivity ou en appuyant sur ctrl + shift + o pour importer les fichiers manquants.

J'espère que vous pouvez maintenant obtenir la classe FragmentActivity.

Si vous utilisez le juno Eclipse, alors ne vous inquiétez pas pour le téléchargement du fichier jar de support. Il sera automatiquement placé dans le répertoire libs et ajouté automatiquement à votre chemin de projet. Si ce n'est pas le cas, passez par l'option Properties et ajoutez-la.

Encore une chose Si vous devez prendre en charge votre application pour la version inférieure, créez avec la version supérieure et ajoutez votre ligne dans votre fichier androidmanifest.xml

<uses-sdk
    Android:minSdkVersion="3"
    Android:targetSdkVersion="15" />

cela prendra désormais en charge les appareils de version 1.5 à 4.0.1.

45
Pratik

Si vous utilisez Eclipse et Windows, voici comment vous débarrasser de cette erreur.

Right click on your project folder->Build path-> Configure build path-> 
Add External Jars -> select "Android-support-v4.jar" file (It'll be located in Android "Android-sdk-windows\extras\Android\support")
then click OK.
38
Shivanand Darur

vous devez ajouter externe Android support Jar à votre chemin de classe, par exemple dans mon cas, j'ai ajouté Android-support-v4.jar son généralement situé dans le {Android_home}\extras\Android\support\v4 répertoire. J'utilise Windows XP et dans mon cas, il est situé à C:\Program Files\Android\android-sdk\extras\Android\support\v4

J'espère que cela aide à quiconque cherche une réponse.

5
Prashant

FragmentActivity fait partie de la bibliothèque de compatibilité et non Android 3.0 sdk. Vous n'avez pas besoin de l'utiliser sauf si vous souhaitez une compatibilité descendante.

Je ne sais pas pourquoi cela est mentionné ici peut être une classe spécifique à un projet.

Essayez de regarder HCGallery Sample livré avec le sdk

1
Rajdeep Dua