web-dev-qa-db-fra.com

Comment déboguer un module de bibliothèque Android dans Android Studio?

J'ai un projet Android Studio qui contient un module de bibliothèque, qui est ajouté en tant que projet tiers. Je voudrais déboguer le code de la bibliothèque et définir des points d'arrêt sur celui-ci.

Quels paramètres dois-je utiliser si je souhaite déboguer un module de bibliothèque lors de l'exécution de l'application sur un émulateur ou un périphérique réel?


Mise à jour 1

c'est le fichier settings.gradle:

include ':app'
include':my-library'
8
Farhad Faghihi

Après quelques jours de difficultés, j'ai trouvé la bonne configuration pour pouvoir déboguer le module de bibliothèque:

1- Créer un projet composé de deux modules, le app et le module-bibliothèque

2- Ajoutez dirigez la dépendance du module à app, à partir du library-module. C'est ce que build.gradle de la app:

compile project(':library-module')

3- Remove toute configuration de signature automatique ajoutée dans le fichier app build.gradle

4- Supprimer ces lignes à la fois de la app et du library-module

minifyEnabled true
shrinkResources true
4
Farhad Faghihi

Je règle le type de construction Debug et Release du module de bibliothèque sur debuggable

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        debuggable true
        jniDebuggable true
    }
    debug {
        debuggable true
        jniDebuggable true
        minifyEnabled false
    }
}
2
ossamacpp

J'ai fait face à ce problème il y a longtemps. certaines versions de gradle basculeront votre bibliothèque en mode release même si vous la définissez pour déboguer. le correctif est soit mettre à jour au plus tard. si cela n'a pas résolu le problème. dans votre bibliothèque, n'utilisez pas:

if BuildConfig.DEBUG

utilisez plutôt:

boolean isDebuggable = ( 0 != ( getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE ) );
1
Hisham Bakr

J'utilise cette configuration pour déboguer mes bibliothèques:

|- myApplication
|  |- settigs.gradle
|  |- build.gradle
|     ...
|- myLibrary
   |- build.gradle
      ...

ajouter à settings.gradle:

include ':myLibrary'
project(':myLibrary').projectDir = new File(settingsDir, '../myLibrary')

ajouter à build.gradle (de votre application)

compile project(':myLibrary')

Votre bibliothèque est simplement incluse et vous pouvez déboguer et définir des points d'arrêt comme dans l'application.

0
Myon