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

Composants graphiques Android Discussion :

Widget bouton erreur


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2012
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 124
    Par défaut Widget bouton erreur
    Bonjour,

    J'ai le besoin de créer un widget qui au final serait un simple bouton qui lorsque j’appuierais dessus il utilisera une méthode de mon mainActivity.

    Alors j'ai essayé de mettre ça en place, mais dés que j'appui sur le widget une fois qu'il est en place cela me m'affiche "launcher 3 s'est arrêté"

    Voici le code de ma classe qui étend de AppWidgetProvider :

    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
    public class MonWidget extends AppWidgetProvider {
     
        public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
     
            // Pour chaque instance de notre AppWidget
            for (int i = 0 ; i < appWidgetIds.length ; i++) {
                // On crée la hiérarchie sous la forme d'un RemotViews
                RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
     
                // On récupère l'identifiant du widget actuel
                int id = appWidgetIds[i];
                // On met à jour toutes les vues du widget
                appWidgetManager.updateAppWidget(id, views);
            }
        }
    }
    Voici le appwidget-provider :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="utf-8"?>
    <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="146dp"
    android:minHeight="72dp"
    android:initialLayout="@layout/widget_layout"
    android:updatePeriodMillis="10">
    </appwidget-provider>
    voici le layout :
    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
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:layout_margin="4dp">
    <Button
        android:id="@+id/alerte_btn_wid"
        android:layout_width="146dp"
        android:layout_height="72dp"
        android:layout_centerInParent="true"
        android:background="@layout/bouton_appui"
        android:text="ALERTE !"
        android:onClick="clikBtnAlerte" />
    </LinearLayout>
    et enfin voici la déclaration dans 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
    50
    51
    52
    53
    54
    55
    56
    57
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.iris1.sdrp_top_1" >
     
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.SEND_SMS" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.READ_CALENDAR" />
        <uses-permission android:name="android.permission.WRITE_CALENDAR" />
     
     
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Holo.Light.DarkActionBar" > >
     
            <service android:enabled="true"
                android:name=".Service_GPS"
                />
            <activity
                android:screenOrientation="portrait"
                android:name=".MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
     
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
     
            <activity
                android:screenOrientation="portrait"
                android:name=".PermissionGps"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
     
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
     
            <!-- Notre AppWidget -->
            <receiver android:name=".MonWidget">
                <intent-filter>
                    <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
                </intent-filter>
                <meta-data android:name="android.appwidget.provider"
                    android:resource="@xml/widget" />
            </receiver>
     
        </application>
     
    </manifest>

    voici le logcat :
    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
    05-26 12:18:37.624  13217-13217/com.example.iris1.sdrp_top_1 D/AndroidRuntime﹕ Shutting down VM
    05-26 12:18:37.628  13217-13217/com.example.iris1.sdrp_top_1 E/AndroidRuntime﹕ FATAL EXCEPTION: main
        Process: com.example.iris1.sdrp_top_1, PID: 13217
        java.lang.RuntimeException: Unable to instantiate receiver com.example.iris1.sdrp_top_1.MonWidgetAlerte: java.lang.ClassNotFoundException: Didn't find class "com.example.iris1.sdrp_top_1.MonWidgetAlerte" on path: DexPathList[[zip file "/data/app/com.example.iris1.sdrp_top_1-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
                at android.app.ActivityThread.handleReceiver(ActivityThread.java:2589)
                at android.app.ActivityThread.access$1800(ActivityThread.java:147)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373)
                at android.os.Handler.dispatchMessage(Handler.java:102)
                at android.os.Looper.loop(Looper.java:135)
                at android.app.ActivityThread.main(ActivityThread.java:5254)
                at java.lang.reflect.Method.invoke(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:372)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
         Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.iris1.sdrp_top_1.MonWidgetAlerte" on path: DexPathList[[zip file "/data/app/com.example.iris1.sdrp_top_1-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
                at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
                at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
                at android.app.ActivityThread.handleReceiver(ActivityThread.java:2584)
    ************at android.app.ActivityThread.access$1800(ActivityThread.java:147)
    ************at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1373)
    ************at android.os.Handler.dispatchMessage(Handler.java:102)
    ************at android.os.Looper.loop(Looper.java:135)
    ************at android.app.ActivityThread.main(ActivityThread.java:5254)
    ************at java.lang.reflect.Method.invoke(Native Method)
    ************at java.lang.reflect.Method.invoke(Method.java:372)
    ************at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
    ************at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
        Suppressed: java.lang.ClassNotFoundException: com.example.iris1.sdrp_top_1.MonWidgetAlerte
                at java.lang.Class.classForName(Native Method)
                at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
                at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
                at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
                ... 11 more
         Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
    05-26 12:18:42.856  13217-13217/com.example.iris1.sdrp_top_1 I/Process﹕ Sending signal. PID: 13217 SIG: 9

    Merci par avance )

  2. #2
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    J'ai pas regardé le code mais est ce que tu pourrais nous poster le logcat ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2012
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 124
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    J'ai pas regardé le code mais est ce que tu pourrais nous poster le logcat ?
    Justement lorsque j'appui sur le widget il y pas de message dans le logcat, mais il m'affiche que le launcher a eu un probleme..

    une idée ?

    Merci

  4. #4
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    poste moi quand même le logcat sans filtrage si tu veux. L'erreur est forcément dans le logcat ^^

  5. #5
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2012
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 124
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    poste moi quand même le logcat sans filtrage si tu veux. L'erreur est forcément dans le logcat ^^
    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
    05-26 16:39:33.829    2707-2740/com.example.iris1.sdrp_top_1 W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xa68b3b80, error=EGL_SUCCESS
    05-26 16:40:07.957    2798-2832/com.example.iris1.sdrp_top_1 D/OpenGLRenderer﹕ Render dirty regions requested: true
    05-26 16:40:07.960    2798-2831/com.example.iris1.sdrp_top_1 D/InputStream﹕ Host name may not be null
    05-26 16:40:07.960    2798-2831/com.example.iris1.sdrp_top_1 W/System.err﹕ org.json.JSONException: End of input at character 0 of
    05-26 16:40:07.960    2798-2831/com.example.iris1.sdrp_top_1 W/System.err﹕ at org.json.JSONTokener.syntaxError(JSONTokener.java:450)
    05-26 16:40:07.960    2798-2831/com.example.iris1.sdrp_top_1 W/System.err﹕ at org.json.JSONTokener.nextValue(JSONTokener.java:97)
    05-26 16:40:07.960    2798-2831/com.example.iris1.sdrp_top_1 W/System.err﹕ at org.json.JSONObject.<init>(JSONObject.java:156)
    05-26 16:40:07.960    2798-2831/com.example.iris1.sdrp_top_1 W/System.err﹕ at org.json.JSONObject.<init>(JSONObject.java:173)
    05-26 16:40:07.960    2798-2831/com.example.iris1.sdrp_top_1 W/System.err﹕ at com.example.iris1.sdrp_top_1.MyAsyncTaskPostIdNum.postData(MyAsyncTaskPostIdNum.java:118)
    05-26 16:40:07.960    2798-2831/com.example.iris1.sdrp_top_1 W/System.err﹕ at com.example.iris1.sdrp_top_1.MyAsyncTaskPostIdNum.doInBackground(MyAsyncTaskPostIdNum.java:47)
    05-26 16:40:07.960    2798-2831/com.example.iris1.sdrp_top_1 W/System.err﹕ at com.example.iris1.sdrp_top_1.MyAsyncTaskPostIdNum.doInBackground(MyAsyncTaskPostIdNum.java:27)
    05-26 16:40:07.960    2798-2831/com.example.iris1.sdrp_top_1 W/System.err﹕ at android.os.AsyncTask$2.call(AsyncTask.java:288)
    05-26 16:40:07.960    2798-2831/com.example.iris1.sdrp_top_1 W/System.err﹕ at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    05-26 16:40:07.960    2798-2831/com.example.iris1.sdrp_top_1 W/System.err﹕ at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
    05-26 16:40:07.960    2798-2831/com.example.iris1.sdrp_top_1 W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    05-26 16:40:07.960    2798-2831/com.example.iris1.sdrp_top_1 W/System.err﹕ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    05-26 16:40:07.960    2798-2831/com.example.iris1.sdrp_top_1 W/System.err﹕ at java.lang.Thread.run(Thread.java:818)
    05-26 16:40:07.961    2798-2798/com.example.iris1.sdrp_top_1 D/﹕ HostConnection::get() New Host Connection established 0xa6847f10, tid 2798
    05-26 16:40:08.072    2798-2798/com.example.iris1.sdrp_top_1 D/Atlas﹕ Validating map...
    05-26 16:40:08.138    2798-2832/com.example.iris1.sdrp_top_1 D/﹕ HostConnection::get() New Host Connection established 0xa685d690, tid 2832
    05-26 16:40:08.272    2798-2832/com.example.iris1.sdrp_top_1 I/OpenGLRenderer﹕ Initialized EGL, version 1.4
    05-26 16:40:08.299    2798-2813/com.example.iris1.sdrp_top_1 I/art﹕ Background sticky concurrent mark sweep GC freed 2627(199KB) AllocSpace objects, 1(81KB) LOS objects, 11% free, 999KB/1135KB, paused 1.900ms total 380.772ms
    05-26 16:40:08.319    2798-2832/com.example.iris1.sdrp_top_1 D/OpenGLRenderer﹕ Enabling debug mode 0
    05-26 16:40:08.356    2798-2832/com.example.iris1.sdrp_top_1 W/EGL_emulation﹕ eglSurfaceAttrib not implemented
    05-26 16:40:08.356    2798-2832/com.example.iris1.sdrp_top_1 W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xa68800a0, error=EGL_SUCCESS
    05-26 16:40:08.635    2798-2832/com.example.iris1.sdrp_top_1 W/EGL_emulation﹕ eglSurfaceAttrib not implemented
    05-26 16:40:08.635    2798-2832/com.example.iris1.sdrp_top_1 W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xa68800c0, error=EGL_SUCCESS
    05-26 16:40:08.654    2798-2798/com.example.iris1.sdrp_top_1 I/Choreographer﹕ Skipped 32 frames!  The application may be doing too much work on its main thread.
    05-26 16:40:11.502    2798-2832/com.example.iris1.sdrp_top_1 W/EGL_emulation﹕ eglSurfaceAttrib not implemented
    05-26 16:40:11.502    2798-2832/com.example.iris1.sdrp_top_1 W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xa68800c0, error=EGL_SUCCESS
    05-26 16:40:17.892    2798-2798/com.example.iris1.sdrp_top_1 I/Choreographer﹕ Skipped 174 frames!  The application may be doing too much work on its main thread.
    05-26 16:40:17.936    2798-2832/com.example.iris1.sdrp_top_1 W/EGL_emulation﹕ eglSurfaceAttrib not implemented
    05-26 16:40:17.936    2798-2832/com.example.iris1.sdrp_top_1 W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xa68800c0, error=EGL_SUCCESS
    05-26 16:40:18.528    2798-2832/com.example.iris1.sdrp_top_1 W/EGL_emulation﹕ eglSurfaceAttrib not implemented
    05-26 16:40:18.528    2798-2832/com.example.iris1.sdrp_top_1 W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xa68800c0, error=EGL_SUCCESS
    05-26 16:40:19.223    2798-2798/com.example.iris1.sdrp_top_1 I/Choreographer﹕ Skipped 38 frames!  The application may be doing too much work on its main thread.
    05-26 16:40:20.566    2798-2832/com.example.iris1.sdrp_top_1 W/EGL_emulation﹕ eglSurfaceAttrib not implemented
    05-26 16:40:20.566    2798-2832/com.example.iris1.sdrp_top_1 W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xa68800c0, error=EGL_SUCCESS
    Finalement j'ai peut-etre trouvé, car lorsque j'appui sur le bouton j'appel une méthode ClikbtnAlerte, mais cette méthode est présente dans la classe MainActivity, ça peut venir de là ?

    Merci

  6. #6
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Tu avais déjà posté le logcat en fait :/

    java.lang.RuntimeException: Unable to instantiate receiver com.example.iris1.sdrp_top_1.MonWidgetAlerte: java.lang.ClassNotFoundException: Didn't find class "com.example.iris1.sdrp_top_1.MonWidgetAlerte"
    Ton problème est là

    Finalement j'ai peut-etre trouvé, car lorsque j'appui sur le bouton j'appel une méthode ClikbtnAlerte, mais cette méthode est présente dans la classe MainActivity, ça peut venir de là ?
    oui je pense du coup

Discussions similaires

  1. Evénements bouton, erreur au lancement
    Par dorian100100 dans le forum Composants graphiques
    Réponses: 8
    Dernier message: 18/05/2014, 17h03
  2. Changer couleur bouton erreur compilation
    Par toufik135 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/01/2014, 15h31
  3. Widget + police = erreur insoluble
    Par kangouroux dans le forum Android
    Réponses: 2
    Dernier message: 07/03/2013, 00h33
  4. [Dojo] récupérer état des Widgets (en erreur ?)
    Par okilele dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 19/01/2010, 01h07
  5. Réponses: 2
    Dernier message: 28/10/2008, 09h30

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