web-dev-qa-db-fra.com

Comment ajouter une bibliothèque (Android-support-v7-appcompat) dans IntelliJ IDEA

J'ai créé un projet, copié les fichiers de ressources dans le projet, la bibliothèque, ajouté à la structure du projet, style prescrit Theme.AppCompat. Compilé sans erreur, mais au démarrage de la relégation

08-03 00:50:00.406: ERROR/AndroidRuntime(4055): FATAL EXCEPTION: main
        Java.lang.NoClassDefFoundError: Android.support.v7.appcompat.R$styleable
        at Android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.Java:98)
        at Android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.Java:58)
        at Android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.Java:98)
        at com.example.SampleMetrRost.CentralActivity.onCreate(CentralActivity.Java:12)
        at Android.app.Activity.performCreate(Activity.Java:4636)
        at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1051)
        at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:1924)
        at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:1985)
        at Android.app.ActivityThread.access$600(ActivityThread.Java:127)
        at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1151)
        at Android.os.Handler.dispatchMessage(Handler.Java:99)
        at Android.os.Looper.loop(Looper.Java:137)
        at Android.app.ActivityThread.main(ActivityThread.Java:4476)
        at Java.lang.reflect.Method.invokeNative(Native Method)
        at Java.lang.reflect.Method.invoke(Method.Java:511)
        at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:816)
        at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:583)
        at dalvik.system.NativeStart.main(Native Method)

Aidez-moi, s'il vous plaît. J'ai passé toute la journée aujourd'hui.

66
Alex Malkov

Sans Gradle ( Cliquez ici pour la solution Gradle )

  1. Créer un projet de bibliothèque de support

  2. Importez votre projet de bibliothèque dans Intellij à partir du projet Eclipse (cette étape ne s'applique que si vous avez créé votre bibliothèque dans Eclipse).

  3. Cliquez avec le bouton droit sur le module et choisissez Ouvrir les paramètres du module.

  4. Bibliothèques d'installation du fichier jar v7 Setup libraries of v7 jar file

  5. Module de bibliothèque d'installation de v7 Setup library module of v7

  6. Dépendance du module de l'application de configuration du module de bibliothèque v7 Setup app module dependency of v7 library module

83
Tsung Goh

Utiliser Gradle

Si vous utilisez Gradle, vous pouvez l'ajouter en tant que dépendance compile.

Instructions

  1. Assurez-vous que le package Android Support Repository SDK est installé. Android Studio reconnaît automatiquement ce référentiel lors du processus de construction (vous ne savez pas tout à fait sur IntelliJ).

    Android Support Repository

  2. Ajouter la dépendance à {project}/build.gradle

    dependencies {
        compile 'com.Android.support:appcompat-v7:+'
    }
    
  3. Cliquez sur le bouton Sync Project with Gradle Files.

EDIT: On dirait que ces mêmes instructions sont sur le documentation sous Adding libraries with resources -> Using Android Studio.

112
Austyn Mahoney

Utiliser Maven

Tout d’abord, vous devez installer les bibliothèques Android sur votre référentiel Maven local à l’aide de Maven Android SDK Deployer

Ensuite, vous pouvez ajouter une dépendance à votre pom comme ceci:

    <dependency>
        <groupId>Android.support</groupId>
        <artifactId>compatibility-v7-appcompat</artifactId>
        <version>${compatibility.version}</version>
        <type>apklib</type>
    </dependency>

    <dependency>
        <groupId>Android.support</groupId>
        <artifactId>compatibility-v7-appcompat</artifactId>
        <version>${compatibility.version}</version>
        <type>jar</type>
    </dependency>
9
Bersh

Ceci est ma solution:

  1. Copier-coller $ Android_SDK/suppléments/Android/support/v7/appcompat dans votre projet ROOT

  2. Ouvrez "Structure du projet" sur Intellij, cliquez sur "Modules" dans "Paramètres du projet", puis sur "appcompat" -> "Android", assurez-vous que la case "Module de bibliothèque" est cochée.

  3. cliquez sur "YOUR-PROJECT_NAME" sous "appcompat", supprimez "Android-support-v4" et "Android-support-v7-compat"; assurez-vous que la case à cocher avant "appcompat" est cochée. Et cliquez sur "ok" pour fermer le dialogue "Structure du projet".

  4. de retour à la fenêtre principale, cliquez sur "appcompat" -> "libs" dans la zone de projet en haut à gauche. Cliquez avec le bouton droit de la souris sur "Android-support-v4", sélectionnez menuitem "Ajouter en tant que bibliothèque", remplacez "Ajouter au module" par "Votre projet". Même chose avec "Android-support-v7-compat".

Intellij devrait être capable de trouver correctement les modules Android-support-XXXX.

Bonne chance!

4
huangchang

Une autre solution pour maven (et une meilleure solution, du moins pour moi) consiste à utiliser le référentiel maven inclus dans le SDK Android. Pour ce faire, ajoutez simplement un nouveau référentiel dans votre pom pointant vers le SDK Android local:

<repository>
    <id>Android-support</id>
    <url>file://${env.Android_HOME}/extras/Android/m2repository</url>
</repository>

Après avoir ajouté ce référentiel, vous pouvez ajouter la dépendance standard de Google comme ceci:

<dependency>
    <groupId>com.Android.support</groupId>
    <artifactId>support-v13</artifactId>
    <version>${support-v13.version}</version>
</dependency>

<dependency>
    <groupId>com.Android.support</groupId>
    <artifactId>appcompat-v7</artifactId>
    <version>${appcompat-v7.version}</version>
    <type>aar</type>
</dependency>
3
JavierSP1209

Une autre solution simple consiste à coller ces lignes dans le fichier build.gradle.

dependencies {

    //import of gridlayout
    compile 'com.Android.support:gridlayout-v7:19.0.0'
    compile 'com.Android.support:appcompat-v7:+'
}
3
Creative Mentor

En tant que projet de bibliothèque

Vous devez ajouter les ressources dans un projet de bibliothèque conformément à http://developer.Android.com/tools/support-library/setup.html

Section> Ajout de bibliothèques avec des ressources

Vous ajoutez ensuite la bibliothèque Android-support-v7-appcompat dans votre espace de travail, puis vous l'ajoutez en tant que référence à votre projet d'application. 

La définition de toutes les ressources dans votre projet d'application fonctionnera également (mais il y a beaucoup de définitions à ajouter et vous en avez oublié certaines), et ce n'est pas l'approche recommandée.

1
IanB

En tant que mise à jour de la réponse de Austyn Mahoney , la configuration "compiler" est obsolète et a été remplacée par "implementation" et "api".

Il sera supprimé fin 2018. Pour plus d'informations, voir here .

0
Abd Al-Rahman Osama

Ceci est ma solution, elle est très similaire à la précédente:

<dependency>
        <groupId>com.google.Android</groupId>
        <artifactId>support-v7</artifactId>
        <scope>system</scope>
        <systemPath>${Android.home}/support/v7/appcompat/libs/Android-support-v7-appcompat.jar</systemPath>
        <version>19.0.1</version>
</dependency>

Où {Android.home} est le répertoire racine du SDK Android et utilise systemPath au lieu de repository .

0
db80