Ressources sur le sous-module de frères et sœurs, projet Gradle

J'essaie de migrer le projet de ma société de Maven vers Gradle, jusqu'à présent, j'ai pu convertir tous les POM vers les fichiers build.gradle correspondants, mais j'ai rencontré un problème dans un module secondaire lors de la construction.

- Core-UI ---- Utils ---- FieldPanels 

Le sous-module FieldPanel utilise des couleurs et d'autres ressources définies dans Utils. J'ai essayé d'ajouter le projet Utils comme une dépendance, mais cela ne fonctionnait pas, qu'est-ce que je manque?

  • Comment analyser GCM répondz pour supprimer l'identifiant d'enregistrement invalide du serveur avec php
  • Implémentation d'un design personnalisé dans Android
  • Android - hors ligne, sans vecteur, cartes personnalisées
  • Android Studio: le nouvel annuaire créé n'apparaît pas dans la vue des dossiers
  • Comment déboguer dans Android Studio en utilisant adb sur WiFi
  • Android: Possibilité de créer plusieurs instances d'une activité dans la même tâche?
  •  /home/development/AndroidStudioProjects/com.project/core-ui/common.android.fieldpanels/build/bundles/debug/res/layout/base_summary_step_layout.xml:2: error: Error: No resource found that matches the given name (at 'background' with value '@color/wizard_summary_bg'). 

    Utilise gradle.build

     buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.2' } } apply plugin: 'android-library' android { sourceSets { main { manifest { srcFile 'AndroidManifest.xml' } res { srcDirs = [ 'res' ] } } } compileSdkVersion 15 buildToolsVersion '17.0' dependencies { compile group: 'com.company.ipos.android', name: 'commons.pos.micropos.api', version: '0.0.35-SNAPSHOT' compile group: 'org.slf4j', name: 'slf4j-api', version: '1.6.5' } } repositories { maven { credentials { username mavenUser password mavenPassword } url repoUrl } maven { credentials { username mavenUser password mavenPassword } url libsReleasesUrl } maven { credentials { username mavenUser password mavenPassword } url libsSnapshotsUrl } } 

    FieldPanels gradle.build

     buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.2' } } apply plugin: 'android-library' repositories { maven { credentials { username mavenUser password mavenPassword } url repoUrl } maven { credentials { username mavenUser password mavenPassword } url libsReleasesUrl } maven { credentials { username mavenUser password mavenPassword } url libsSnapshotsUrl } } android { dependencies { compile group: 'com.company.ipos.android', name: 'commons.pos.micropos.api', version: '0.0.35-SNAPSHOT' //compile group: 'com.company.ipos.android', name: 'common.android.utils', version: '0.0.35-SNAPSHOT' compile project(":common.android.utils") compile group: 'org.slf4j', name: 'slf4j-api', version: '1.6.5' } sourceSets { main { manifest { srcFile 'AndroidManifest.xml' } res { srcDirs = [ 'res', ] } } } compileSdkVersion 15 buildToolsVersion '17.0' } 

  • L'erreur "Observer ... was not registered"
  • AndroidManifest.out.xml étant généré avec des erreurs
  • Effectuer et surveiller un appel téléphonique au sein de phonegap
  • L'activité a filtré la fenêtre qui a été ajouté à l'origine
  • Comment configurer le projet Android Studio à partir de zéro qui me permet d'utiliser Groovy
  • SetOrientationHint tourne la vidéo dans le sens inverse des aiguilles d'une montre sur les caméras face (HTC) de certains téléphones
  • 3 Solutions collect form web for “Ressources sur le sous-module de frères et sœurs, projet Gradle”

    Pouvez-vous inclure votre paramètre.gradle. Je me demande si vous avez un chemin incorrect dans votre dépendance de compilation.

    Voici comment vous avez déclaré la dépendance de fieldPanels à utils

     compile project(":common.android.utils") 

    Ce que cela signifie, c'est que le module de bibliothèque utils doit être connu de gradle ": common.android.utils". Peut-être que cela devrait être à la place?

     compile project(":Core-UI:Utils") 

    Prenons votre exemple de "2 projets de bibliothèque LA et LB et LB dépend de LA" Voici quelques exemples pratiques.

    Disons que LA possède le fichier strings.xml suivant

     <?xml version="1.0" encoding="utf-8"?> <resources> <string name="la_resource">la resource</string> </resources> 

    Disons que LB possède le fichier strings.xml suivant

     <?xml version="1.0" encoding="utf-8"?> <resources> <string name="lb_resource">lb resource</string> </resources> 

    Disons que nous voulons définir une vue personnalisée nommée TestView dans LB. TestView fera référence à la_resource de LA et lb_resource de LB. Voici la source de TestView

     package com.example.myapplication3.lb; import android.content.Context; import android.util.AttributeSet; import android.widget.TextView; public class TestView extends TextView { public TestView(Context context) { super(context); setText(context.getString(R.string.la_resource) + " " + context.getString(R.string.lb_resource)); } public TestView(Context context, AttributeSet attrs) { super(context, attrs); setText(context.getString(R.string.la_resource) + " " + context.getString(R.string.lb_resource)); } public TestView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); setText(context.getString(R.string.la_resource) + " " + context.getString(R.string.lb_resource)); } } 

    Disons que nous voulons définir une autre vue personnalisée nommée TestView2 dans LB. TestView2 va gonfler une disposition XML. La mise en page XML fera référence à la_resource de LA et lb_resource de LB. Voici la source de TestView2

     package com.example.myapplication3.lb; import android.content.Context; import android.util.AttributeSet; import android.view.LayoutInflater; import android.widget.FrameLayout; import android.widget.TextView; import org.w3c.dom.Text; public class TestView2 extends FrameLayout { public TestView2(Context context) { super(context); LayoutInflater.from(context).inflate(R.layout.test_view_2, this); } public TestView2(Context context, AttributeSet attrs) { super(context, attrs); LayoutInflater.from(context).inflate(R.layout.test_view_2, this); } public TestView2(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); LayoutInflater.from(context).inflate(R.layout.test_view_2, this); } } 

    Et voici la source de test_view_2.xml

     <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/la_resource" android:padding="4dp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/lb_resource" /> </LinearLayout> 

    Si vous rencontrez ce problème dans Adobe Studio / IDEA, n'oubliez pas de vérifier la case à cocher de la library sur vos modules de bibliothèque dans les paramètres du projet.

    Essayez également d'utiliser une version différente de android plugin, 0.8+, par exemple. Et une autre pensée: il y avait et peut-être encore des problèmes différents avec android plugin et 7 java, si vous l'utilisez, essayez d'utiliser 6.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.