Migration Eclipse -> Android Studio

  • Hi, ich bin neu im Forum und hoffe, dass ihr mir bei meinem aktuellen Problem behilflich sein könnt.


    Es ist definitv ein Problem für Bastler und ich habe inzwischen 1,5 Arbeitstage daran "herumgebastelt".
    Genau, die Rede ist von der Migration einer App, die mit Eclipse für Android entwickelt wurde, auf Android Studio.


    Zum Hintergrund: Ich bin neuer Azubi in einer mittelständisches Firma und habe, bevor ich hier vor ein paar Wochen anfing, ein wenig mit Android Studio gearbeitet und bei Udacity entsprechende Kurse absolviert. Eclipse kenne ich auch, habe aber nur ein wenig in Java herumgespielt und nie ein richtiges Projekt angefangen.
    Nun hat mein Kollege eine App für unsere Firmen-Software entwickelt, die auch fabelhaft läuft, sowohl unter Android, als auch unter IOS. Sie ist für mich bei BitBucket verfügbar.
    Für die App hat er Maven und ein paar lokale Bibliotheken benutzt, die er in Eclipse mit viel Mühe eingebunden hat.
    Ich bin nun erstmal dafür zuständig, die App unter Android Studio zum Laufen zu bekommen - und scheitere.
    Mein Kollege ist sehr hilfsbereit, kennt sich mit Android Studio aber kein bisschen aus und konnte mir daher nur bedingt helfen. Deswegen schreibe ich jetzt hier.


    Das Projekt über Git in der VCS-Schaltfläche auszuchecken hat funktioniert. Es liegt lokal in meinem Ordnerbaum. Den offiziellen Guide zur Migrierung habe ich befolgt und ein großes App-Projekt in Android Studio inkl. Gradle. Es läuft aber nicht. Ein Fehler jagd den nächsten. Zuerst waren bestimmte Klassen / Ordner dupliziert, dann fehlten Referenzen oder Klassen und das alles in einem projekt, mit dem ich mich null auskenne.


    Mein Kollege meinte, Maven würde die Struktur anlegen, weshalb ich das Maven-Plugin installieren solle. Das habe ich versucht. Ohne Erfolg. Es gibt mehrere Plugins, aber keines hat funktioniert. Immerhin habe ich inzwischen die Maven-Schaltfläche an der Seite.


    Was könnt ihr jetzt tun, fragt ihr euch vielleicht. ich wäre froh über Ratschläge zur Integration von Maven in Android Studio. Die Tutorials im WWW haben bisher keinen Erfolg gebracht. Zudem wäre es schön, wenn jemand berichten könnte, dass er oder sie es erfolgreich geschafft hat eine App zu migrieren und evtl. Tipps hier lässt. Ansonsten würde ich mich auch über hilfreiche Ressourcen freuen, da ich merke, dass ich von Maven / Gradle / Git bzw. BitBucket branching und großen Projekten noch etwas im Regen stehe.


    TL;dr: Wie bekomme ich eine App aus Eclipse in Andriod Studio zum Laufen? Den Guide der offiziellen Seite habe ich gelesen, sowie einen Haufen Posts auf Stackoverflow und Youtube Tutorials.


    Probleme: Maven läuft nicht in Android Studio. Fehler im Code, die bei Behebung / Auskommentierung zu weiteren Fehlern füren usw. oder schwer behebbar sind, da Referenzen / Klassen fehlen.


    Danke für eure Mühe und Geduld,


    viele Grüße!

  • classpath ist eine Datei, die eigentlich in die GitIgnor mit aufgenommen werden sollte.


    Versuche mal die App ohne den classpath in ein neues Repo zu bringen und dieses noch mal versuchen zum A-S zu bringen.

    Kann Spuren von persönlicher Meinung, Sarkasmus und Lakritz enthalten. Einzelne Wörter nicht für den Verzehr geeignet. Ungelesen mindestens haltbar bis: suche bei Google

  • Das werde ich an meinen Kollegen weitergeben, ich kann keinen Commit ausführen.


    Ich habe noch einmal einen "sauberen" Import gemacht, indem ich .settings, .classpath etc. gelöscht habe und der Ordnerbaum sieht besser aus. Die Fehler die jetzt noch kommen scheinen von fehlenden Bibliotheken zu kommen, die über Maven importiert werden sollen.
    Mein nächster Schritt ist also, irgendwie Maven in Android Studio zum Laufen zu bekommen...


    Danke soweit schonmal, Fischkralle!

  • Ich noch mal...
    Du kannst echt keine Commits machen?
    Können deine Kollegen dir nicht einen Branch aufmachen auf dem du dich austoben kannst?

    Kann Spuren von persönlicher Meinung, Sarkasmus und Lakritz enthalten. Einzelne Wörter nicht für den Verzehr geeignet. Ungelesen mindestens haltbar bis: suche bei Google

  • Fischkralle: Momentan habe ich lediglich Leserechte, ich bekomme aber Schreibrechte wenn ich anfange mit meinem Kollegen am Projekt zu arbeiten. Er ist auch kein Experte was Git und Version Control angeht, ich denke zu dem Thema werde ich mir einfach ein Tutorial suchen und mich einlesen, den Rest macht dann (hoffentlich) die Praxis.


    @jogimuc: Danke für den Link! Wenn ich das richtig verstehe muss ich Maven als Repository in Gradle definieren und dann ein bestimmtes Plugin als Dependency bestimmen, korrekt?
    Dafür muss ich sicherlich Maven erst einmal installieren. Das hat anscheinend bei mir nicht richtig geklappt, wie wir vorhin noch feststellten. Über die Kommandozeile war Maven nicht zu finden.
    Und in unserem internen Wiki gibt es einen Eintrag, nach dem ich Umgebungsvariablen setzen muss, um Maven nutzen zu können. Der wurde aber vor Jahren für Eclipse geschrieben, ich weiß also nicht, ob ich das auch machen muss. So etwas habe ich in den Guides / Tutorials zum Einbinden von Maven auch nicht gefunden.

  • @jogimuc: Danke für die Links, ich habe den GitHub Guide noch nicht ausprobiert, das werde ich aber sicher noch machen.
    Momentan sieht es aus wie folgt:
    Ich habe ein Projekt von BitBucket, das einen alten master Branch nutzt und bei dem ich die libraries, die in der pom.xml für Maven definiert waren, manuell in gradle überführt habe - und siehe da, es läuft. Es gibt noch Fehler, ich kann die App aber im Emulator starten.
    Dafür kann ich mit Git aber keine anderen Branches sehen.
    Bei einem zweiten Projekt habe ich alle Branches von BitBucket, aber kein gradle und dementsprechend auch keine funktionierende App.


    Ich habe das Gefühl, dass das Problem mit Maven unabhängig ist von dem Problem mit Git.

  • Guten Morgen, ich habe weitere Updates zum Stand der Dinge und ein weiteres Problem, bei dem ich Hilfe gebrauchen könnte.


    Updates: Die App läuft auf meinem PC, sie stürzt nur in manchen Fenstern ab. Insgesamt aber schon ein großer Fortschritt. =)
    Ich habe die Konfigurationen aus der pom.xml manuell in Gradle überführt und Fehlende nachgetragen. Git läuft auch, ich habe alle remote Branches, jetzt muss ich mich noch einlesen wie man mit Git vernünftig arbeitet.^^


    Problem: Die Abstürze scheinen auf eine Doppelung der Support-Library (v4) zurückzuführen zu sein. Jedenfalls zeigt mir Android Studio beim Start des Emulators an, dass diese Bibliothek dupliziert vorhanden ist. Ich muss also herausfinden, welche Bibliotheken diese Library benutzen und dann die Support-Library excluden.


    Aber wie finde ich heraus, welche Library die Support-Library nutzt?


    Hier mein Fehlercode:


    Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
    > com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoIcsImpl.class


    Hier mein Gradle-File:


    apply plugin: 'com.android.application'


    repositories {
    jcenter()
    maven {
    url "https://repository-achartengine.forge.cloudbees.com/snapshot/"
    }
    }


    dependencies {
    compile 'org.slf4j:slf4j-api:1.7.5'
    compile 'com.j256.ormlite:ormlite-android:4.48'
    compile 'com.google.android:support-v4:r6'
    compile 'com.sun.jersey:jersey-bundle:1.8'
    compile 'org.achartengine:achartengine:1.2.0'
    compile ('fr.avianey.com.viewpagerindicator:library:2.4.1.1@aar') {
    exclude group:'com.google.android', module:'support-v4'
    }
    compile 'com.github.tony19:logback-android-classic:1.0.10-2'
    compile 'com.google.android.gms:play-services-maps:7.3.0'
    compile 'com.google.android.gms:play-services-identity:7.3.0'
    compile 'com.google.gms:google-services:3.0.0'
    }


    android {
    compileSdkVersion 26
    buildToolsVersion "26.0.0"


    defaultConfig {
    applicationId "xxxxxxxxxxxxxxxxx"
    minSdkVersion 16
    targetSdkVersion 16
    multiDexEnabled true
    }


    buildTypes {
    release {
    minifyEnabled false
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
    }
    }


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

  • Puh, ich bin wieder zurück zum Reißbrett und habe versucht folgendes Maven Plugin zu installieren: Android-Maven-Plugin GitHub.
    Ich würde gerne mit Maven den Build meines Projekts ausführen und die Ordnerstruktur anlegen etc., dieses Plugin habe ich aber nur über die dependencies in Gradle importiert bekommen.
    Ist es nur dafür gedacht oder kann man es auch für die IDE konfigurieren?


    Zusätzliche Infos, die mich leider kein Stück weiter gebracht haben gibt es hier: Android-Maven-Plugin Website

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!