web-dev-qa-db-fra.com

Bibliothèque Android Studio "erreur: le package n'existe pas"

J'ai créé la bibliothèque Android en tant que module Android Studio. Ajouté comme dépendance à mon module racine. Pendant le codage, je peux importer n’importe quelle classe du paquet de la bibliothèque, mais pendant que j’essaie d’exécuter l’application, je reçois une erreur package some.mylibrary.project does not exist.

build.gradle module racine

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:0.12.+'
    }
}
apply plugin: 'com.Android.application'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile 'com.Android.support:appcompat-v7:20.+'
    compile 'com.google.Android.gms:play-services:5.+'
    compile project(':libraries:mylibrary')
}

Android {
    compileSdkVersion 17
    buildToolsVersion "20.0.0"

    lintOptions {
        disable 'InvalidPackage'
        checkReleaseBuilds false
        abortOnError false
    }

    ***
}

build.gradle module de bibliothèque

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:0.12.+'
    }
}

apply plugin: 'com.Android.application'
apply plugin: 'idea'

Android {
    compileSdkVersion 17
    buildToolsVersion "20.0.0"

     *****    
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

settings.gradle  

include ':libraries:mylibrary'

P.S. Je dois mentionner que le projet a été exporté à partir d’Eclipse IDE, de sorte que la structure du projet est différente de celle par défaut.

31
Robertas Setkus

Si vous avez un module de bibliothèque, il ne peut pas utiliser l'instruction apply plugin: 'com.Android.application' dans la définition de module, sinon la construction échouera de manière silencieuse à mesure que vous voyez. utilisez apply plugin: 'com.Android.library' à la place.

Un bogue a été enregistré pour demander que le système de construction échoue bruyamment au lieu de le faire en silence: https://code.google.com/p/Android/issues/detail?id=76725

13
Scott Barta

Pour Android Studio 2.2.2

Oui, dans le module de bibliothèque, il ne peut pas utiliser l'instruction apply plugin: com.Android.application dans la définition du module. Oui, utilisez apply plugin: com.Android.library à la place. (toujours dans le module lib)

Mais alors vous devez faire ce qui suit:

  1. Exposez les mêmes versions du SDK dans les fichiers Gradle pour les deux modules.
  2. Faites un clic droit sur le dossier du module "app" de vos projets et cliquez sur -> ouvrir les paramètres du module
  3. Cliquez sur l'onglet "dépendances"
  4. Cliquez sur le signe + pour ajouter une nouvelle dépendance et sélectionnez "Dépendance du module".
  5. Recherchez la bibliothèque dont vous avez besoin et ajoutez-la.

Aussi, tout en nommant votre module lib, évitez les majuscules.

13
CodeToLife

Dans l'application Build-Gradle, ajoutez cette ligne:

implementation project(":your_name_library_here")
1
O Thạnh Ldt