IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

FragmentActivity et exception ClassNotFoundException


Sujet :

Android

  1. #1
    Membre actif Avatar de IsiTech
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Janvier 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Janvier 2012
    Messages : 105
    Points : 268
    Points
    268
    Par défaut FragmentActivity et exception ClassNotFoundException
    Bonjour,

    J'ai crée une application Android qui fonctionne sans soucis, mais pour certains besoins j'ai besoin que mon activité principale étende de FragmentActivity au lieu d'Activity. Cependant cela lève une exception dont je n'arrive pas à trouver la source.

    Exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    W/dalvikvm(17660): Unable to resolve superclass of Lfr/lri/insitu/probe/ui/MainActivity; (27)
    W/dalvikvm(17660): Link of class 'Lfr/lri/insitu/probe/ui/MainActivity;' failed
    D/AndroidRuntime(17660): Shutting down VM
    W/dalvikvm(17660): threadid=1: thread exiting with uncaught exception (group=0x40e852a0)
    E/AndroidRuntime(17660): FATAL EXCEPTION: main
    E/AndroidRuntime(17660): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{fr.lri.insitu.probe/fr.lri.insitu.probe.ui.MainActivity}: java.lang.ClassNotFoundException: fr.lri.insitu.probe.ui.MainActivity
    E/AndroidRuntime(17660): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2031)
    E/AndroidRuntime(17660): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2132)
    E/AndroidRuntime(17660): 	at android.app.ActivityThread.access$700(ActivityThread.java:140)
    E/AndroidRuntime(17660): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1238)
    E/AndroidRuntime(17660): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    E/AndroidRuntime(17660): 	at android.os.Looper.loop(Looper.java:137)
    E/AndroidRuntime(17660): 	at android.app.ActivityThread.main(ActivityThread.java:4918)
    E/AndroidRuntime(17660): 	at java.lang.reflect.Method.invokeNative(Native Method)
    E/AndroidRuntime(17660): 	at java.lang.reflect.Method.invoke(Method.java:511)
    E/AndroidRuntime(17660): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
    E/AndroidRuntime(17660): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
    E/AndroidRuntime(17660): 	at dalvik.system.NativeStart.main(Native Method)
    E/AndroidRuntime(17660): Caused by: java.lang.ClassNotFoundException: fr.lri.insitu.probe.ui.MainActivity
    E/AndroidRuntime(17660): 	at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
    E/AndroidRuntime(17660): 	at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
    E/AndroidRuntime(17660): 	at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
    E/AndroidRuntime(17660): 	at android.app.Instrumentation.newActivity(Instrumentation.java:1068)
    E/AndroidRuntime(17660): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2022)
    E/AndroidRuntime(17660): 	... 11 more
    Code de mon activité principale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    package fr.lri.insitu.probe.ui;
     
    import fr.lri.insitu.probe.R;
    import fr.lri.insitu.probe.background.TimeRuleService;
     
    import android.os.Bundle;
    import android.app.ActivityManager;
    import android.app.ActivityManager.RunningServiceInfo;
    import android.content.Context;
    import android.content.Intent;
    import android.support.v4.app.FragmentActivity;
    import android.util.Log;
    import android.view.View;
    import android.view.Window;
    import android.widget.Button;
    import android.widget.Toast;
     
    public class MainActivity extends FragmentActivity {
    	// If the probe is working
    	private boolean probeWorking = false;
     
    	private Button startStopButton;	
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
     
    		// Remove the title bar
    		this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    		setContentView(R.layout.main_page);
     
    		//Getting the startStopButton
    		startStopButton = (Button)findViewById(R.id.buttonStartStop);	
    	}
     
    	@Override
    	protected void onResume() {
    		super.onResume();
     
    		boolean isRunning = isMyServiceRunning();
     
    		if (isRunning) {
    			startStopButton.setText(R.string.button_stop);
    			probeWorking = true;
    		} else {
    			startStopButton.setText(R.string.button_start);
    			probeWorking = false;
    		}
     
    	}
     
    	@Override
    	public void onDestroy() {
    		super.onDestroy();
     
    		(...)
     
    		Context context = getApplicationContext();
    		CharSequence text = "Probe stopped";
    		int duration = Toast.LENGTH_SHORT;
     
    		Toast toast = Toast.makeText(context, text, duration);
    		toast.show();
    	}
     
    	/**
             * Call when a button is clicked
             * @param v
             */
    	public void onClick(View v) {
                    (...)
    	}
     
    }
    Le manifest :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="fr.lri.insitu.probe"
        android:versionCode="1"
        android:versionName="1.0" >
     
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="17" />
     
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    	<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
    	<uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" />
    	<uses-permission android:name="android.permission.GET_TASKS" />
    	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    	<uses-permission
        android:name="com.google.android.gms.permission.ACTIVITY_RECOGNITION"/>
     
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="fr.lri.insitu.probe.ui.MainActivity"
                android:label="@string/app_name"
                android:screenOrientation="portrait" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity 
                android:name="fr.lri.insitu.probe.ui.SettingsActivity"
                android:label="@string/settings_activity"
                android:screenOrientation="portrait" >
            </activity>
            <activity
                android:name="fr.lri.insitu.probe.ui.StatusActivity"
                android:label="@string/status_activity"
                android:screenOrientation="portrait" >
            </activity>
            <service android:name="fr.lri.insitu.probe.background.ListenerService"></service>
            <service android:name="fr.lri.insitu.probe.background.ModerationService"></service>
            <service android:name="fr.lri.insitu.probe.background.TimeRuleService"></service>
        </application>
     
    </manifest>
    Cette exception est levée dès le lancement de l'application, avant même l'appel de super.onCreate(...).

    J'ai essayé différentes choses basées sur mes recherches, mais rien n'a fonctionné. J'ai notamment coché Android Private Libraries dans Java Build Path, j'ai tenté Clean Up, mais rien ne change. Si je repasse sur Activity ça refonctionne cependant. Il n'y a pas de problème de noms et j'ai relu plusieurs fois le manifest sans rien voir.

    Si vous avez des idées sur pourquoi FragmentActivity lève une exception tandis qu'Activity fonctionne parfaitement, je suis preneur.

    Bonne journée.


    Edit : Après création d'un nouveau projet dans lequel j'ai mis les sources de mon premier projet, ça fonctionne. Merci Eclipse . Merci de m'avoir lu !

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2013
    Messages : 70
    Points : 113
    Points
    113
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Unable to resolve superclass of Lfr/lri/insitu/probe/ui/MainActivity;
    tu es sur d'avoir importer correctement/au bonne endroit ta bibliothèque support.v4?

    édite: ok j'avais pas vu ton édite

  3. #3
    Membre actif Avatar de IsiTech
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Janvier 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Janvier 2012
    Messages : 105
    Points : 268
    Points
    268
    Par défaut
    Tu as répondu en même temps que mon edit, donc je le remets : J'ai crée un nouveau projet avec les sources du premier et ça fonctionne, donc ça devait venir du projet qui était corrompu.

    Merci de votre aide, je passe le sujet en résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exception ClassNotFoundException mais classe présente
    Par jecomprendsrien dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 30/09/2011, 09h50
  2. Réponses: 2
    Dernier message: 09/11/2010, 02h12
  3. Exception JNDI NamingManager & ClassNotFoundException
    Par micanti dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 20/05/2010, 11h52
  4. Exception ClassNotFoundException - JAR
    Par projetM dans le forum Maven
    Réponses: 3
    Dernier message: 27/04/2009, 18h41
  5. unreported exception: java.lang.ClassNotFoundException
    Par obydissonn dans le forum JDBC
    Réponses: 1
    Dernier message: 22/03/2007, 16h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo