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 :

Mon application crash au bout d'un certain temps


Sujet :

Android

  1. #1
    Membre averti
    Homme Profil pro
    Rien
    Inscrit en
    Janvier 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Rien

    Informations forums :
    Inscription : Janvier 2016
    Messages : 14
    Par défaut Mon application crash au bout d'un certain temps
    Bonjour ! ^^

    J'ai comme projet de devoir programmer des actions bien précises sur un drone DJI. J'ai donc commencé à coder grâce aux tutos de la documentation (un peu de copier coller pour certaines actions voir beaucoup). La partie connexion au drone est codée et ces fonctionnalités fonctionnent néanmoins j'ai un problème de taille et je m'en remet donc à vous : tout fonctionne parfaitement mais au bout d'un certain temps l'appli crash

    J'ai beau chercher un peu partout je ne trouve pas ce qui pourrait justifier ce crash. Il se produit pile quand mon appli se connecte avec succès au drone et pas à un autre moment. Je vous envoie la fonction qui selon moi n'est pas la source du problème mais peut être ai-je tort...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    private void IsConnected() {
           BaseProduct Drone = DJISDKManager.getInstance().getProduct();
           if (Drone != null) {
                   Toast.makeText(getApplicationContext(), "Product Connected !", Toast.LENGTH_LONG).show();
                   Intent intent = new Intent(this, MainActivity.class);
                   startActivity(intent);
               }
           else {
               Toast.makeText(getApplicationContext(), "Product Unconnected. Please Refresh.", Toast.LENGTH_LONG).show();
           }
       }
    Merci d'avance ^^

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Sans le message d'erreur associé difficile de deviner ce qui se passe
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Homme Profil pro
    Rien
    Inscrit en
    Janvier 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Rien

    Informations forums :
    Inscription : Janvier 2016
    Messages : 14
    Par défaut
    Tout d'abord merci de ta réponse.
    Le problème c'est que pour me connecter au drone je dois brancher mon téléphone à la télécommande du drone et donc le débrancher de mon pc donc pas de console
    Y aurait-il une solution pour y remédier ?

  4. #4
    Membre averti
    Homme Profil pro
    Rien
    Inscrit en
    Janvier 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Rien

    Informations forums :
    Inscription : Janvier 2016
    Messages : 14
    Par défaut
    Est-il possible que le problème soit lié à ma version d'android (5.1) ? Car je viens de teste sur android 4.4 (Dans mon code c'est la version minimale de compatibilité du programme) et l'App crash au démarrage. Si c'est la source du problème, y aurait il moyen de régler les problèmes de compatibilité ?
    Merci ^^

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    comme dit, faudrait les messages d'erreur, sinon, on va juste dire que ça crashe parce que c'est mal codé Tant qu'à donner des réponses à l'aveuglette

    Tu ne peux pas juste connecter ton smartphone sur ton PC après le crash et regarder les logs?

  6. #6
    Membre averti
    Homme Profil pro
    Rien
    Inscrit en
    Janvier 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Rien

    Informations forums :
    Inscription : Janvier 2016
    Messages : 14
    Par défaut
    Tout d'abord, merci de votre réponse.
    Je suis désolé mais je suis un débutant en programmation donc pourriez-vous m'expliquer ou m'envoyer un lien sur comment faire ceci s'il vous plait ?
    Je vous remercie

  7. #7
    Membre averti
    Homme Profil pro
    Rien
    Inscrit en
    Janvier 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Rien

    Informations forums :
    Inscription : Janvier 2016
    Messages : 14
    Par défaut
    Bon j'ai réussis à trouver et fait comme vous m'avez dit ^^
    Voici donc le log de tout ce qui contient "DJI" (j'ai fait du tri car il y avait vraiment trop de chose à sélectionner).
    Enjoy !
    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
     
    07-01 19:19:05.647: I/ActivityManager(999): START u0 {act=android.hardware.usb.action.USB_ACCESSORY_ATTACHED flg=0x13000000 cmp=com.arnaud.drone/dji.sdk.sdkmanager.DJIAoaControllerActivity (has extras)} from uid 10024 from pid 17530 on display 0 from pid 17530
    07-01 19:19:05.760: I/ActivityManager(999): Start proc 15514:com.arnaud.drone/u0a205 for activity com.arnaud.drone/dji.sdk.sdkmanager.DJIAoaControllerActivity
    07-01 19:19:32.184: W/ActivityManager(999): Scheduling restart of crashed service com.arnaud.drone/dji.sdk.sdkmanager.DJIGlobalService in 1000ms
    07-01 19:20:04.140: W/ActivityManager(999): Scheduling restart of crashed service com.arnaud.drone/dji.sdk.sdkmanager.DJIGlobalService in 1000ms
    07-01 19:20:15.853: W/ActivityManager(999): Scheduling restart of crashed service com.arnaud.drone/dji.sdk.sdkmanager.DJIGlobalService in 1000ms
    07-01 19:20:21.725: E/DJIUsbAccessoryReceiver(16691): getManufacturer: DJI
    07-01 19:20:21.726: E/DJIUsbAccessoryReceiver(16691): openAccessory: UsbAccessory[mManufacturer=DJI, mModel=T600, mDescription=DJI Inspire 1, mVersion=v0.0.0.0, mUri=www.dji.com, mSerial=000000000000000]
    07-01 19:20:22.286: W/System.err(16691): 	at dji.midware.broadcastReceivers.DJINetWorkReceiver.b(Unknown Source)
    07-01 19:20:22.286: W/System.err(16691): 	at dji.midware.broadcastReceivers.DJINetWorkReceiver.b(Unknown Source)
    07-01 19:20:22.286: W/System.err(16691): 	at dji.sdk.sdkmanager.DJISDKManager.initParams(Unknown Source)
    07-01 19:20:22.286: W/System.err(16691): 	at dji.sdk.sdkmanager.DJISDKManager.initSDKManager(Unknown Source)
    07-01 19:20:22.286: W/System.err(16691): 	at dji.sdk.sdkmanager.DJISDKManager.registerApp(Unknown Source)
    07-01 19:20:26.267: W/System.err(16691): 	at dji.sdksharedlib.DJISDKCache.setValue(Unknown Source)
    07-01 19:20:26.267: W/System.err(16691): 	at dji.sdksharedlib.listener.DJISDKCacheListenerLayer$ValueChangeRunnable.run(Unknown Source)
    07-01 19:20:26.529: W/System.err(16691): 	at dji.midware.broadcastReceivers.DJINetWorkReceiver.b(Unknown Source)
    07-01 19:20:26.529: W/System.err(16691): 	at dji.midware.broadcastReceivers.DJINetWorkReceiver.b(Unknown Source)
    07-01 19:20:26.529: W/System.err(16691): 	at dji.sdksharedlib.listener.DJISDKCacheListenerLayer$ValueChangeRunnable.run(Unknown Source)
    07-01 19:20:26.719: E/AndroidRuntime(16691): 	at dji.midware.data.forbid.DJIFlyForbidController.generateCheckList(Unknown Source)
    07-01 19:20:26.719: E/AndroidRuntime(16691): 	at dji.midware.data.forbid.DJIFlyForbidController.checkNearFlyForbidArea(Unknown Source)
    07-01 19:20:30.863: W/keystore(363): Could not read CACERT_DJIDBAlias
    07-01 19:20:31.341: W/System.err(16896): 	at dji.midware.data.forbid.DJIFlyForbidController.<init>(Unknown Source)
    07-01 19:20:31.341: W/System.err(16896): 	at dji.midware.data.forbid.DJIFlyForbidController.getInstance(Unknown Source)
    07-01 19:20:31.341: W/System.err(16896): 	at dji.sdk.sdkmanager.DJISDKManager.initParams(Unknown Source)
    07-01 19:20:31.341: W/System.err(16896): 	at dji.sdk.sdkmanager.DJISDKManager.initSDKManager(Unknown Source)
    07-01 19:20:31.342: W/System.err(16896): 	at dji.sdk.sdkmanager.DJISDKManager.registerApp(Unknown Source)
    07-01 19:20:33.548: E/DJIUsbAccessoryReceiver(16896): getManufacturer: DJI
    07-01 19:20:33.549: E/DJIUsbAccessoryReceiver(16896): openAccessory: UsbAccessory[mManufacturer=DJI, mModel=T600, mDescription=DJI Inspire 1, mVersion=v0.0.0.0, mUri=www.dji.com, mSerial=000000000000000]
    07-01 19:20:34.171: W/System.err(16896): 	at dji.midware.broadcastReceivers.DJINetWorkReceiver.b(Unknown Source)
    07-01 19:20:34.171: W/System.err(16896): 	at dji.midware.broadcastReceivers.DJINetWorkReceiver.b(Unknown Source)
    07-01 19:20:34.171: W/System.err(16896): 	at dji.sdk.sdkmanager.DJISDKManager.initParams(Unknown Source)
    07-01 19:20:34.171: W/System.err(16896): 	at dji.sdk.sdkmanager.DJISDKManager.initSDKManager(Unknown Source)
    07-01 19:20:34.171: W/System.err(16896): 	at dji.sdk.sdkmanager.DJISDKManager.registerApp(Unknown Source)
    07-01 19:20:38.262: W/System.err(16896): 	at dji.sdksharedlib.DJISDKCache.setValue(Unknown Source)
    07-01 19:20:38.262: W/System.err(16896): 	at dji.sdksharedlib.listener.DJISDKCacheListenerLayer$ValueChangeRunnable.run(Unknown Source)
    07-01 19:20:38.526: W/System.err(16896): 	at dji.midware.broadcastReceivers.DJINetWorkReceiver.b(Unknown Source)
    07-01 19:20:38.526: W/System.err(16896): 	at dji.midware.broadcastReceivers.DJINetWorkReceiver.b(Unknown Source)
    07-01 19:20:38.526: W/System.err(16896): 	at dji.sdksharedlib.listener.DJISDKCacheListenerLayer$ValueChangeRunnable.run(Unknown Source)
    07-01 19:20:38.748: E/AndroidRuntime(16896): 	at dji.midware.data.forbid.DJIFlyForbidController.generateCheckList(Unknown Source)
    07-01 19:20:38.748: E/AndroidRuntime(16896): 	at dji.midware.data.forbid.DJIFlyForbidController.checkNearFlyForbidArea(Unknown Source)
    07-01 19:20:39.006: W/ActivityManager(999): Scheduling restart of crashed service com.arnaud.drone/dji.sdk.sdkmanager.DJIGlobalService in 1000ms

  8. #8
    Membre averti
    Homme Profil pro
    Rien
    Inscrit en
    Janvier 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Rien

    Informations forums :
    Inscription : Janvier 2016
    Messages : 14
    Par défaut

  9. #9
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Y'a rien lié à ton application dans le log d'erreur ...

    Si ton téléphone est débranché du PC , il suffit de faire un debug distant :
    https://developer.android.com/studio....html#wireless

    Si ce n'est pas possible , il faut intégrer à ton application un crash report qui va enregistrer les crash.
    Par exemple : https://firebase.google.com/docs/crash/android ou https://github.com/ACRA/acra

    Mais tu ne peux pas debugger à tatons sans savoir ce que tu cherches
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre averti
    Homme Profil pro
    Rien
    Inscrit en
    Janvier 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Rien

    Informations forums :
    Inscription : Janvier 2016
    Messages : 14
    Par défaut
    Bonjour !
    Désolé de ma réponse un peu tardive. J'ai installé Crashlytics et il me met que j'ai cette erreur dans mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.List dji.thirdparty.afinal.b.a(java.lang.Class, java.lang.String, java.lang.String)' on a null object reference
           at dji.midware.data.forbid.db.FlyfrbBaseDbManager.getDataAroundSlow(Unknown Source)
           at dji.midware.data.forbid.db.FlyfrbPolygonMainDbManager.getNearFlyforbidArea(Unknown Source)
           at dji.midware.data.forbid.DJIFlyForbidController.generateCheckList(Unknown Source)
           at dji.midware.data.forbid.DJIFlyForbidController.checkNearFlyForbidArea(Unknown Source)
           at dji.midware.data.forbid.DJIFlyForbidController.checkNearFlyfrbAreaOpReloadDb(Unknown Source)
           at dji.sdk.flightcontroller.FlyZoneManager.readNPushFlyforbidData(Unknown Source)
           at dji.sdk.flightcontroller.FlyZoneManager.access$1900(Unknown Source)
           at dji.sdk.flightcontroller.FlyZoneManager$8.handleMessage(Unknown Source)
           at android.os.Handler.dispatchMessage(Handler.java:107)
           at android.os.Looper.loop(Looper.java:194)
           at android.os.HandlerThread.run(HandlerThread.java:61)
    Qu'est ce que ça veut dire ? Comment puis-je m'en débarrasser ?
    Merci de vos réponses

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 476
    Par défaut
    Pour rejoindre mes prédécesseurs, sans code, difficile de t'aider. Et comme suggéré par Grunk, avec un debug distant, on aurait eu une trace plus précise du bug, et donc la ligne de code incriminée. En tout cas, ca ne vient pas du bout de code que tu as écrit plus haut.
    Je ne suis pas expert, mais ton problème vient certainement d'une List null, auquel cas l'intancier avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maList = new ArrayList<>
    A défaut, c'est un des élément (donc un String) de la liste qui est null.

  12. #12
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    et qu'est-ce que tu ne comprends pas dans ce message?

  13. #13
    Membre averti
    Homme Profil pro
    Rien
    Inscrit en
    Janvier 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Rien

    Informations forums :
    Inscription : Janvier 2016
    Messages : 14
    Par défaut
    Bonsoir,
    Tout d'abord merci de vos réponses rapides.
    En premier lieu, pour répondre à tchize_ , ce que je ne comprends pas c'est d'où pouvait venir le problème (la seule chose que j'ai comprise du message c'est le java.lang.NullPointerException mais en relisant le code je ne voyais pas d'où il venait).
    Deuxièmement, je vous envoie mon code (une partie est copiée directement du tutoriel de DJI)
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    package com.arnaud.drone;
     
    import android.Manifest;
    import android.content.Intent;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Looper;
    import android.support.v4.app.ActivityCompat;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Build;
    import android.util.Log;
    import android.view.MotionEvent;
    import android.view.View;
    import android.widget.Toast;
    import android.widget.Button;
    import android.view.View.OnTouchListener;
     
    import com.crashlytics.android.Crashlytics;
    import io.fabric.sdk.android.Fabric;
     
    import dji.common.error.DJIError;
    import dji.common.error.DJISDKError;
    import dji.sdk.base.BaseComponent;
    import dji.sdk.base.BaseProduct;
    import dji.sdk.sdkmanager.DJISDKManager;
     
    public class ConnectionActivity extends AppCompatActivity implements OnTouchListener {
     
        Button b;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            Fabric.with(this, new Crashlytics());
            setContentView(R.layout.activity_connection);
     
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                ActivityCompat.requestPermissions(this,
                        new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.VIBRATE,
                                Manifest.permission.INTERNET, Manifest.permission.ACCESS_WIFI_STATE,
                                Manifest.permission.WAKE_LOCK, Manifest.permission.ACCESS_COARSE_LOCATION,
                                Manifest.permission.ACCESS_NETWORK_STATE, Manifest.permission.ACCESS_FINE_LOCATION,
                                Manifest.permission.CHANGE_WIFI_STATE, Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS,
                                Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.SYSTEM_ALERT_WINDOW,
                                Manifest.permission.READ_PHONE_STATE,
                        }
                        , 1);
            }
     
                DJISDKManager.getInstance().registerApp(this, mDJISDKManagerCallback);
                InitUI();
        }
     
        private DJISDKManager.SDKManagerCallback mDJISDKManagerCallback = new DJISDKManager.SDKManagerCallback() {
            //Listens to the SDK registration result
            @Override
            public void onRegister(DJIError error) {
                if(error == DJISDKError.REGISTRATION_SUCCESS) {
                    Handler handler = new Handler(Looper.getMainLooper());
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            Toast.makeText(getApplicationContext(), "Register Success", Toast.LENGTH_LONG).show();
                        }
                    });
                    DJISDKManager.getInstance().startConnectionToProduct();
                } else {
                    Handler handler = new Handler(Looper.getMainLooper());
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            Toast.makeText(getApplicationContext(), "Register sdk fails, check network is available", Toast.LENGTH_LONG).show();
                        }
                    });
                }
                Log.e("TAG", error.toString());
            }
            //Listens to the connected product changing, including two parts, component changing or product connection changing.
            @Override
            public void onProductChange(BaseProduct oldProduct, BaseProduct newProduct) {
                BaseProduct mProduct = newProduct;
                if(mProduct != null) {
                    mProduct.setBaseProductListener(mDJIBaseProductListener);
                }
                notifyStatusChange();
            }
        };
     
        private BaseProduct.BaseProductListener mDJIBaseProductListener = new BaseProduct.BaseProductListener() {
            @Override
            public void onComponentChange(BaseProduct.ComponentKey key, BaseComponent oldComponent, BaseComponent newComponent) {
                if(newComponent != null) {
                    newComponent.setComponentListener(DJIComponentListener);
                }
                notifyStatusChange();
            }
            @Override
            public void onConnectivityChange(boolean isConnected) {
                notifyStatusChange();
            }
        };
     
        private BaseComponent.ComponentListener DJIComponentListener = new BaseComponent.ComponentListener() {
     
            @Override
            public void onConnectivityChange(boolean isConnected) {
                notifyStatusChange();
            }
        };
     
        private void notifyStatusChange() {
            Handler mHandler = new Handler(Looper.getMainLooper());
            mHandler.removeCallbacks(updateRunnable);
            mHandler.postDelayed(updateRunnable, 500);
        }
     
        private Runnable updateRunnable = new Runnable() {
     
            @Override
            public void run() {
                String FLAG_CONNECTION_CHANGE = "fpv_tutorial_connection_change";
                Intent intent = new Intent(FLAG_CONNECTION_CHANGE);
                sendBroadcast(intent);
            }
        };
        private void IsConnected() {
            BaseProduct Drone = DJISDKManager.getInstance().getProduct();
            if (Drone != null) {
                    Toast.makeText(getApplicationContext(), "Product Connected !", Toast.LENGTH_LONG).show();
                    Intent intent = new Intent(this, MainActivity.class);
                    startActivity(intent);
                }
            else {
                Toast.makeText(getApplicationContext(), "Product Unconnected. Please Refresh.", Toast.LENGTH_LONG).show();
            }
        }
     
        private void InitUI(){
            b = (Button)findViewById(R.id.ButtonRefresh);
            b.setOnTouchListener(this);
        }
     
        @Override
        public boolean onTouch(View v, MotionEvent m){
            switch(v.getId()){
                case R.id.ButtonRefresh:
                    IsConnected();
                    break;
            }
            return true;
        }
    }
    Merci de vos réponses.

  14. #14
    Membre averti
    Homme Profil pro
    Rien
    Inscrit en
    Janvier 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Rien

    Informations forums :
    Inscription : Janvier 2016
    Messages : 14
    Par défaut
    Bon je sais pas pourquoi mais pendant 2 essais l'appli ne crashait plus. J'ai donc fait un bouton pour fermer le programme dans ma 2e activité mais là le programme ne se lance même plus pour une raison obscure Oo (je précise que même le programme de ma 1ere activité ne se lance pas jusqu'au bout, devant normalement afficher un "Register Succes". Je précise que j'ai enlevé une virgule qui je pense était en trop dans le programme à la fin de mon tableau de String
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     ActivityCompat.requestPermissions(this,
                        new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.VIBRATE,
                                Manifest.permission.INTERNET, Manifest.permission.ACCESS_WIFI_STATE,
                                Manifest.permission.WAKE_LOCK, Manifest.permission.ACCESS_COARSE_LOCATION,
                                Manifest.permission.ACCESS_NETWORK_STATE, Manifest.permission.ACCESS_FINE_LOCATION,
                                Manifest.permission.CHANGE_WIFI_STATE, Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS,
                                Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.SYSTEM_ALERT_WINDOW,
                                Manifest.permission.READ_PHONE_STATE}, 1);
    Voici le log d'erreur obtenu grâce au log à distance (Merci grunk)
    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
    07-05 15:44:40.185: W/Interception(999): isInterceptByRule realCallingPid: 13904 isInterceptAsUsual: true isMatch: true, runType===retrieve_service|||callerPkg===com.arnaud.drone|||calleePkg===com.google.android.gms|||calleeClass===com.google.android.gms.ads.identifier.service.AdvertisingIdService|||processName===com.google.android.gms|||action===com.google.android.gms.ads.identifier.service.START|||data===*|||extras===*|||interception===false
    07-05 15:44:40.641: W/System.err(13904): Caused by: java.lang.ClassNotFoundException: Didn't find class "dji.pilot.reflect.AppPublicReflect" on path: DexPathList[[zip file "/system/framework/com.android.future.usb.accessory.jar", zip file "/data/app/com.arnaud.drone-2/base.apk", zip file "/data/app/com.arnaud.drone-2/split_lib_dependencies_apk.apk", zip file "/data/app/com.arnaud.drone-2/split_lib_slice_0_apk.apk", zip file "/data/app/com.arnaud.drone-2/split_lib_slice_1_apk.apk", zip file "/data/app/com.arnaud.drone-2/split_lib_slice_2_apk.apk", zip file "/data/app/com.arnaud.drone-2/split_lib_slice_3_apk.apk", zip file "/data/app/com.arnaud.drone-2/split_lib_slice_4_apk.apk", zip file "/data/app/com.arnaud.drone-2/split_lib_slice_5_apk.apk", zip file "/data/app/com.arnaud.drone-2/split_lib_slice_6_apk.apk", zip file "/data/app/com.arnaud.drone-2/split_lib_slice_7_apk.apk", zip file "/data/app/com.arnaud.drone-2/split_lib_slice_8_apk.apk", zip file "/data/app/com.arnaud.drone-2/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.arnaud.drone-2/lib/arm64, /vendor/lib64, /system/lib64]]
    07-05 15:44:40.652: W/linker(13904): /data/app/com.arnaud.drone-2/lib/arm64/libudt.so: unused DT entry: type 0x6ffffffe arg 0xed30
    07-05 15:44:40.652: W/linker(13904): /data/app/com.arnaud.drone-2/lib/arm64/libudt.so: unused DT entry: type 0x6fffffff arg 0x3
    07-05 15:44:40.655: W/linker(13904): /data/app/com.arnaud.drone-2/lib/arm64/libudtjni.so: unused DT entry: type 0x6ffffffe arg 0xfe0
    07-05 15:44:40.655: W/linker(13904): /data/app/com.arnaud.drone-2/lib/arm64/libudtjni.so: unused DT entry: type 0x6fffffff arg 0x1
    07-05 15:44:40.726: W/linker(13904): /data/app/com.arnaud.drone-2/lib/arm64/libGroudStation.so: unused DT entry: type 0x6ffffffe arg 0x1250
    07-05 15:44:40.726: W/linker(13904): /data/app/com.arnaud.drone-2/lib/arm64/libGroudStation.so: unused DT entry: type 0x6fffffff arg 0x1
    07-05 15:44:40.878: W/linker(13904): /data/app/com.arnaud.drone-2/lib/arm64/libsqlcipher.so: unused DT entry: type 0x6ffffffe arg 0x39040
    07-05 15:44:40.878: W/linker(13904): /data/app/com.arnaud.drone-2/lib/arm64/libsqlcipher.so: unused DT entry: type 0x6fffffff arg 0x3
    07-05 15:44:42.036: W/ActivityManager(999): Unable to start service Intent { cmp=com.arnaud.drone/dji.internal.geofeature.flyforbid.FlyforbidUpdateService } U=0: not found
    07-05 15:44:42.119: W/linker(13904): /data/app/com.arnaud.drone-2/lib/arm64/libFlyForbid.so: unused DT entry: type 0x6ffffffe arg 0x690
    07-05 15:44:42.119: W/linker(13904): /data/app/com.arnaud.drone-2/lib/arm64/libFlyForbid.so: unused DT entry: type 0x6fffffff arg 0x2
    07-05 15:44:42.687: W/System.err(13904): 	at com.arnaud.drone.ConnectionActivity.onCreate(ConnectionActivity.java:47)
    07-05 15:44:45.329: W/System.err(13904): 	at com.arnaud.drone.ConnectionActivity.onCreate(ConnectionActivity.java:47)
    Merci de vos réponses

    EDIT
    Je ne pense pas que cette virgule soit la source du problème vu que Crashlytics me met toujours la même erreur :/

  15. #15
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Rien à voir avec ta virgule , l'erreur que tu présentes indique qu'il ne trouve pas la librairie DJI :
    Didn't find class "dji.pilot.reflect.AppPublicReflect"
    Tu as du modifié quelque chose au niveau des dépendances de ton projet.

    Dans tous les cas un clean puis un rebuild complet ne fait pas de mal quand on à ce genre d'erreur.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  16. #16
    Membre averti
    Homme Profil pro
    Rien
    Inscrit en
    Janvier 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Rien

    Informations forums :
    Inscription : Janvier 2016
    Messages : 14
    Par défaut
    Bon j'ai clean puis fait un rebuid complet mais ça persiste :/
    Bon voici le contenu de mon AndroidManifest et de mes fichiers Build.gradle
    AndroidManifest.xml
    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
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.arnaud.drone">
     
        <uses-permission android:name="android.permission.BLUETOOTH" />
        <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
        <uses-permission android:name="android.permission.VIBRATE" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.WAKE_LOCK" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
        <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
     
        <uses-feature android:name="android.hardware.camera" />
        <uses-feature android:name="android.hardware.camera.autofocus" />
        <uses-feature
            android:name="android.hardware.usb.host"
            android:required="false" />
        <uses-feature
            android:name="android.hardware.usb.accessory"
            android:required="true" />
     
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
     
            <uses-library android:name="com.android.future.usb.accessory" />
            <meta-data
                android:name="com.dji.sdk.API_KEY"
                android:value="fa8002f58fd0db48efa0012b" />
     
            <activity
                android:name="dji.sdk.sdkmanager.DJIAoaControllerActivity"
                android:theme="@android:style/Theme.Translucent" >
                <intent-filter>
                    <action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" />
                </intent-filter>
                <meta-data
                    android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
                    android:resource="@xml/accessory_filter" />
            </activity>
     
            <service android:name="dji.sdk.sdkmanager.DJIGlobalService" >
            </service>
     
            <activity android:name=".ConnectionActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
     
            <activity android:name=".MainActivity"/>
            <meta-data
                android:name="io.fabric.ApiKey"
                android:value="37f3cd606df690a7c36b68a488c42c8b04f03afe"
                />
        </application>
     
    </manifest>
    Build.gradle (project:drone)
    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
    // Top-level build file where you can add configuration options common to all sub-projects/modules.
     
    buildscript {
        repositories {
            jcenter()
            maven { url 'https://maven.fabric.io/public'}
        }
        dependencies {
            classpath 'io.fabric.tools:gradle:1.+'
            classpath 'com.android.tools.build:gradle:2.3.2'
     
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }
     
    allprojects {
        repositories {
            jcenter()
        }
    }
     
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    Build.gradle(Module:App)
    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
    buildscript {
        repositories {
            maven { url 'https://maven.fabric.io/public' }
        }
     
        dependencies {
            classpath 'io.fabric.tools:gradle:1.+'
        }
    }
    buildscript {
        repositories {
            maven { url 'https://maven.fabric.io/public' }
        }
     
        dependencies {
            classpath 'io.fabric.tools:gradle:1.+'
        }
    }
     
    apply plugin: 'com.android.application'
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }
    apply plugin: 'io.fabric'
     
    android {
        compileSdkVersion 25
        buildToolsVersion "25.0.3"
        defaultConfig {
            applicationId "com.arnaud.drone"
            minSdkVersion 19
            targetSdkVersion 25
            versionCode 1
            versionName "1.0"
            multiDexEnabled true
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
     
    dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
            exclude group: 'com.android.support', module: 'support-annotations'
        })
        compile project(':dJISDKLIB')
        compile 'com.android.support:appcompat-v7:25.3.0'
        compile 'com.android.support.constraint:constraint-layout:1.0.2'
        compile 'com.android.support:design:25.3.0'
        testCompile 'junit:junit:4.12'
        compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
            transitive = true;
        }
    }
    Build.gradle(Module:DJISDKLIB)
    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
    apply plugin: 'com.android.library'
     
    android {
        compileSdkVersion 25
        buildToolsVersion "25.0.3"
     
        defaultConfig {
            minSdkVersion 16
            targetSdkVersion 17
        }
     
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }
        }
    }
     
    dependencies {
        compile files('libs/converter-gson-2.0.1.jar')
        compile files('libs/dji-sdk.jar')
        compile files('libs/dji_eventbus.jar')
        compile files('libs/dji_gson.jar')
        compile files('libs/Java-WebSocket-1.3.0.jar')
        compile files('libs/okhttp-3.2.0.jar')
        compile files('libs/okio-1.7.0.jar')
        compile files('libs/retrofit-2.0.1.jar')
        compile files('libs/rxandroid-1.1.0.jar')
        compile files('libs/rxjava-1.1.2.jar')
        compile files('libs/rxjava-computation-expressions-0.21.1.jar')
        compile files('libs/sqlbrite-0.6.2.jar')
        compile files('libs/sqlcipher.jar')
        compile 'com.google.code.gson:gson:2.6.2'
        compile 'com.android.support:appcompat-v7:25.3.0'
        compile 'com.android.support.constraint:constraint-layout:1.0.2'
    }

  17. #17
    Membre averti
    Homme Profil pro
    Rien
    Inscrit en
    Janvier 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Rien

    Informations forums :
    Inscription : Janvier 2016
    Messages : 14
    Par défaut
    Bon j'ai recommencé mon code et ça a l'air de marcher. Je ne sais pas ce qui ne marchait pas et je pense qu'on ne le saura jamais....
    Merci de votre aide qui m'a appris énormément ^^

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/02/2012, 08h59
  2. Mon application crashe à la fermeture sur Mac
    Par michelblh52 dans le forum Qt
    Réponses: 2
    Dernier message: 06/10/2011, 21h22
  3. mon application crashe
    Par damine09 dans le forum Objective-C
    Réponses: 9
    Dernier message: 21/06/2010, 09h44
  4. Mon application crash a cause de ShellExecute
    Par 0x44-0x43-0x53-0x43 dans le forum Langage
    Réponses: 3
    Dernier message: 21/10/2009, 16h16
  5. Fermer une fenêtre au bout d'un certain temps.
    Par cprogil dans le forum Composants VCL
    Réponses: 5
    Dernier message: 27/11/2003, 18h25

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