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.
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).
Cliquez avec le bouton droit sur le module et choisissez Ouvrir les paramètres du module.
Bibliothèques d'installation du fichier jar v7
Module de bibliothèque d'installation de v7
Dépendance du module de l'application de configuration du module de bibliothèque v7
Si vous utilisez Gradle, vous pouvez l'ajouter en tant que dépendance compile
.
Instructions
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).
Ajouter la dépendance à {project}/build.gradle
dependencies {
compile 'com.Android.support:appcompat-v7:+'
}
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
.
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>
Ceci est ma solution:
Copier-coller $ Android_SDK/suppléments/Android/support/v7/appcompat dans votre projet ROOT
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.
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".
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!
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>
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:+'
}
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.
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 .
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 .