Il progetto di libreria Android non può importre la class R di un altro progetto di libreria quando utilizza gradle per compilare in linea di command

Ho questa struttura per il mio progetto android:

ProjectDir settings.gradle MyApp(depends on LibraryA and LibraryB) -->build.gradle -->All the other android code LibraryA (depends on LibraryB) -->build.gradle -->All the other android code LibraryB (Has lots of resources that are used in LibraryA and MyApp) -->build.gradle -->All the other android code 

Posso compilare l'applicazione android appena usando sia Eclipse che Android Studio. LibraryA import il file R di import com.LibraryB.R; facendo " import com.LibraryB.R; " faccio anche uso di com.LibraryB.R.layout.... tipo referenze nel codice e finché sono nelle cose IDE sono bene.

  • Passare una string da un'attività a un'altra attività in Android
  • Come posso trasferire i dati tra due attività in android
  • Host usb Android: trasferimento di interrupt asincroni
  • findFragmentById per SupportMapFragment restituisce null in Android Studio
  • C'è un modo per utilizzare l'API Google Image Search da Android?
  • Come modificare il colore del text predefinito utilizzando il tema personalizzato?
  • Sto cercando di get le cose da build dalla row di command per il nostro server CI e ho provato sia antica e gradle e finisco per get lo stesso errore di costruzione in ciascuno.

     LibraryA/example.java:10:error:cannot find symbol import com.LibraryB.R 

    Ho persino andato a pubblicare LibraryB come un file locale aar e usandolo per build LibraryA

    LibraryB build.gradle

     buildscript { repositories { mavenLocal() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } group = 'com.libraryb' version = '1.0' apply plugin: 'android-library' apply plugin: 'maven' uploadArchives { repositories { mavenDeployer { repository url: 'file://' + new File(System.getProperty('user.home'), '.m2/repository').absolutePath } } } task install(dependsOn: uploadArchives) repositories { mavenLocal() mavenCentral() } dependencies { compile fileTree(dir: 'libs', include: '*.jar') } android { compileSdkVersion 18 buildToolsVersion "18.0.1" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } } } 

    LibraryA build.gradle

     buildscript { repositories { mavenLocal() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android-library' repositories { mavenLocal() mavenCentral() } dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile 'com.libraryb:LibraryB:1.0' } android { compileSdkVersion 17 buildToolsVersion "18.0.1" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } instrumentTest.setRoot('tests') } } 

    MyApp build.gradle

     buildscript { repositories { mavenLocal() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } group = 'com.myapp' version = '1.0' apply plugin: 'android-library' apply plugin: 'maven' uploadArchives { repositories { mavenDeployer { repository url: 'file://' + new File(System.getProperty('user.home'), '.m2/repository').absolutePath } } } task install(dependsOn: uploadArchives) repositories { mavenLocal() mavenCentral() } dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile project(':LibraryA') } android { compileSdkVersion 18 buildToolsVersion "18.0.1" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } instrumentTest.setRoot('tests') } } 

    settings.gradle

     include ':MyApp' include ':LibraryA' 

    Devo essere in grado di accedere alle risorse di LibraryB da altri progetti di libreria e dall'applicazione principale. Non riesco a capire cosa faccio male. Qualsiasi aiuto sarebbe grande. Fyi, usando gli script di gradi generati da eclipse danno lo stesso problema.

  • Android - Ruota l'image intorno al punto centrale?
  • Invia comandi AT a Android Phone
  • Scorrimento programmato di una parola in visualizzazione in una vista di text
  • Finestra di dialogo personalizzato di Android
  • Salvare l'elenco di oggetti seriali in sharedPreferences
  • sostituendo glReadPixels con EGL_KHR_image_base per una copia di pixel più veloce
  • 2 Solutions collect form web for “Il progetto di libreria Android non può importre la class R di un altro progetto di libreria quando utilizza gradle per compilare in linea di command”

    Ciao ho avuto lo stesso problema, il mio progetto di libreria android, utilizza un'altra libreria (actionBarSherlock). Imansible risolvere l'importzione com.actionbarsherlock.R; quando ho cambiato la linea in gradle.build: applica plugin: 'android-library' a: applica plugin: 'android' poi va bene.

    Ma avrei bisogno di avere come una biblioteca.

    SOLUZIONE QUI: Soluzione È che i file R dalla libreria inclusa vengono generati nella libreria. invece importre com.actionbarsherlock.R; utilizzare l'importzione com.myprojectalsolibrary.R;

    Avete provato a includere

     include ':LibraryB' 

    nelle impostazioni.gradle?

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.