2013-07-08 16 views
8

Ich versuche, ein Verzeichnis als Abhängigkeit in Android Studio (GameBaseUtils) hinzuzufügen. Ich habe andere SO-Antworten gesehen, die einfach die richtige Konfiguration für ihr spezielles Problem gepostet haben, aber ich verstehe nicht, wie ich ihre Antworten auf meine Situation anpassen kann.Android Studio Import Modul Gradle Erstellungsfehler

Hier ist, was ich getan habe:

Schritt eins: File-> Import-Modul -> zum Verzeichnis navigieren und es auszuwählen.

Schritt Zwei-: Datei-> Projektstruktur-> Module-> Wählen Sie meine Anwendung-> Abhängigkeiten-> Fügen Sie das Modul als eine Abhängigkeit zu meinem Projekt.

Jetzt hat mein Code keine roten Linien, die einen Fehler beim Importieren des Moduls anzeigen. Allerdings, wenn ich wählen baue ich die folgenden Fehler erhalten:

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

Hier ist die build.gradle Datei für meine Anwendung

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 
} 
} 

Wie kann ich richtig diese externe Bibliothek importieren und können Sie mir bitte erklären, wie und Warum funktioniert deine Lösung?

Antwort

8

so hier ist, wie ich mein Problem gelöst:

anstelle der Zugabe

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

Sie schreiben müssen:

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

die 2 Punkte sagen, dass das Modul (oder das Verzeichnis) kann in 1 Verzeichnis über dem tatsächlichen gefunden werden. Wenn Sie also auf ein Modul mit 2 Verzeichnissen zugreifen wollen, müssen Sie nur schreiben: '../../ModuleName'

Sie müssen die Module manuell zu build.gradle hinzufügen, da Android Studio noch in der Entwicklungsphase ist und nicht fertig ist UI zum Bearbeiten der Projektstruktur.

Wenn dies Ihr Problem nicht löst, versuchen Sie es so: (Ich würde diese Methode empfehlen.Dies ist, wie ich es wirklich tun)

Examplestructure:

  • Projekt

    • Bibliotheken (normaler Ordner)
      • 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'] 
     } 
    } 
} 

Dies sollte auch jetzt funktionieren. Um alles funktioniert 100% machen folgen diese Schritte:

  1. .idea Ordner
  2. löschen alle *.iml Dateien
  3. Restart Android Studio löschen und Import Project
  4. Wählen Sie das Verzeichnis mit Ihrem gradle Projekt
  5. Import project from external model drücken > Gradle> nächste> Ende

Mit diesen Schritten sollte alles gut funktionieren. Wenn es irgendwelche Probleme gibt, sag es einfach :)

+0

Hat sich der Link für deine verknüpfte Antwort geändert? Es hat mir tatsächlich geholfen, und ich möchte das als Antwort akzeptieren. – KDEx

+0

Ich verbesserte meine Antwort. Der erste ist der Weg mit dem Link, den ich gelöscht habe. der zweite ist derjenige, den ich empfehlen würde – maysi

-1

Fügen Sie keine Module über die Studio-Schnittstelle hinzu. Nehmen Sie die Änderungen immer direkt in build.gradle vor und importieren Sie sie anschließend erneut in Studio.

Aktualisieren Sie auch die Plugin-Abhängigkeit zu com.android.tools.build:gradle:0.4.+, um die neueste 0.4. * - Version zu erhalten.

Verwandte Themen