2013-07-08 16 views
8

Sto tentando di aggiungere una directory come dipendenza in Android Studio (GameBaseUtils). Ho visto altre risposte SO semplicemente postando la configurazione gradle corretta per il loro particolare problema, tuttavia non capisco come posso adattare le loro risposte alla mia situazione.Android Studio modulo di importazione Gradle Costruire errore

Ecco quello che ho fatto:

Fase uno: File> Import Module -> Andare alla directory e selezionarlo.

in due fasi: File> Progetto struttura-> MODULI> Selezionare la mia applicazione-> Dependencies-> Aggiungi il modulo come una dipendenza per il mio progetto.

Ora il mio codice non ha linee rosse che indicano un errore importando il modulo. Tuttavia quando seleziono costruire Ottengo i seguenti errori:

Gradle: package com.google.example.games.basegameutils does not exist 
Gradle: cannot find symbol class BaseGameActivity 
Gradle: cannot find symbol variable super 
... 

Ecco il file build.gradle per la mia applicazione

buildscript { 
repositories { 
    mavenCentral() 
} 
dependencies { 
    classpath 'com.android.tools.build:gradle:0.4' 
} 
} 
apply plugin: 'android' 

dependencies { 
compile files('libs/android-support-v4.jar') 
} 

android { 
compileSdkVersion 17 
buildToolsVersion "17.0.0" 

defaultConfig { 
    minSdkVersion 8 
    targetSdkVersion 17 
} 
} 

Come posso correttamente importare questa libreria esterna e si può spiegare come e perché la tua soluzione funziona?

risposta

8

: ecco come ho risolto il mio problema:

invece di aggiungere

dependencies { 
    compile files('libs/android-support-v4.jar') 
    compile project(':Module') 
} 

Devi scrivere:

dependencies { 
    compile files('libs/android-support-v4.jar', '../Module') 
} 

i 2 punti dicono che il modulo (o directory) può essere trovato in 1 directory sopra quella attuale. quindi se vuoi accedere a un modulo che è 2 directory sopra devi solo scrivere: '../../ModuleName'

Devi aggiungere i moduli manualmente a build.gradle perché Android Studio è ancora in sviluppo e non ha finito il UI per la modifica della struttura del progetto.

Se questo non risolve il problema tenta di farlo in questo modo: (mi sento di raccomandare questo metodo.Questo è come io in realtà faccio)

Examplestructure:

  • Progetto

    • librerie (cartella normale)
      • Module2
    • Module1

settings.gradle

include ':Module1', ':libraries:Module2' 

build.gradle (Module1)

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 
apply plugin: 'android' 

dependencies { 
    compile project(':libraries:Module2') 
} 

android { 
    compileSdkVersion 18 
    buildToolsVersion "18.0.1" 

    defaultConfig { 
     minSdkVersion 8 
     targetSdkVersion 11 
    } 
} 

build.gradle (Module2)

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:0.5.+' 
    } 
} 
apply plugin: 'android-library' 

dependencies { 
    compile 'com.android.support:support-v4:18.0.0' 
} 

android { 
    compileSdkVersion 18 
    buildToolsVersion "18.0.1" 

    defaultConfig { 
     minSdkVersion 8 
     targetSdkVersion 11 
    } 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
     } 
    } 
} 

Questo dovrebbe funzionare bene ora. Per far funzionare tutto al 100% seguire questa procedura:

  1. eliminare .idea cartella
  2. eliminare tutti *.iml file
  3. Riavvia Android Studio e premere Import Project
  4. Selezionare la directory con il progetto Gradle
  5. Import project from external model > Gradle> next> finish

Con questa procedura tutto dovrebbe funzionare bene. Se ci sono problemi, dimmelo :)

+0

Il link è cambiato per la risposta collegata? In realtà mi ha aiutato e vorrei accettare questa come risposta. – KDEx

+0

Ho migliorato la mia risposta. il primo è il modo con il link che ho cancellato. il secondo è quello che raccomanderei – maysi

-1

Non aggiungere moduli attraverso l'interfaccia di Studio. Apportare sempre le modifiche direttamente in build.gradle e quindi reimportare in Studio.

Inoltre, aggiornare la dipendenza plugin per com.android.tools.build:gradle:0.4.+ per ottenere l'ultima 0.4. * Versione.

Problemi correlati