Wie importierst du jetzt ein Eclipse-Projekt in Android Studio?

Verwenden von “Projekt importieren” in Android Studio für ein Eclipse-Projekt zum Ändern der Projektstruktur und zum Generieren von Gradle-Dateien, aber jetzt (ich verwende AS 0.5.3) erzeugt es nur IDEA-Dateien (.iml, .idea), aber nicht Gradle und es berührt auch nicht die Dateistruktur.

Wie importierst du jetzt ein Eclipse-Projekt in Android Studio?

Update: Wenn Sie versuchen, Gradle-Dateien in Eclipse zu exportieren, werden sie nicht für die App exportiert, sie werden auch nicht als Modul in Android Studio angezeigt.

   

In neueren Versionen von Android Studio ist es am besten, ein Eclipse / ADT-Projekt direkt in Android Studio zu importieren. Früher haben wir den Export von Eclipse nach Gradle empfohlen, aber wir haben ADT nicht oft genug aktualisiert, um mit Android Studio Schritt zu halten.

Wenn Sie beim Starten von Android Studio “Projekt importieren” aus dem Menü “Datei” oder aus dem Begrüßungsbildschirm auswählen, sollten Sie auf jeden Fall einen spezialisierten Assistenten verwenden, der Sie auffordert, die Dateien in eine neue Verzeichnisstruktur zu kopieren anstatt sie an Ort und Stelle zu importieren, und es wird angeboten, einige gewöhnliche Dinge zu reparieren, wie das Konvertieren von Abhängigkeiten in Maven-Stil-Includes und so weiter.

Es scheint nicht so, als ob Sie diesen spezialisierten Fluss bekommen. Ich denke, dass es Ihr importiertes Projekt möglicherweise nicht als ADT-Projekt erkennt und es sich um das alte integrierte IntelliJ-Verhalten handelt, das Gradle nicht kennt. Damit der spezialisierte Import funktioniert, muss Folgendes zutreffen:

  • Das Stammverzeichnis des Projekts, das Sie importieren, muss eine AndroidManifest.xml- Datei enthalten.
  • Entweder:
    • Das Stammverzeichnis muss die Dateien .project und .classpath aus Eclipse enthalten
  • oder
    • Das Stammverzeichnis muss Verzeichnisse res und src enthalten.

Wenn Ihr Projekt komplex ist, zeigen Sie es möglicherweise nicht als das Stammverzeichnis an, das angezeigt werden soll, damit der Import erfolgreich ist.

Exportieren von Eclipse

  1. Aktualisiere dein Eclipse ADT Plugin auf 22.0 oder höher , dann gehe zu Datei | Export

  2. Gehen Sie jetzt zu Android und klicken Generate Gradle build files dann auf Generate Gradle build files , dann würde es Gradle-Datei für Sie generieren.

    Bildbeschreibung hier eingeben

  3. Wählen Sie Ihr Projekt, das Sie exportieren möchten

    Bildbeschreibung hier eingeben

  4. Klicken Sie jetzt auf Beenden

    Bildbeschreibung hier eingeben

In Android Studio importieren

  1. Schließen Sie in Android Studio alle derzeit geöffneten Projekte. Sie sollten das Fenster Willkommen bei Android Studio sehen .

  2. Klicken Sie auf Projekt importieren.

  3. Suchen Sie das von Eclipse exportierte Projekt, erweitern Sie es, wählen Sie es aus und klicken Sie auf OK.

Es ist einfacher mit Android Studio Alles, was Sie brauchen, ist zuerst zu wählen

  1. Projekt importieren (Sonnenfinsternis …..) Bildbeschreibung hier eingeben
  2. Wählen Sie dann Ihr eclipse-basiertes Projekt-Projekt Bildbeschreibung hier eingeben

3. Basierend auf dem Typ des Projekts und der Bibliothek, die Sie verwendet haben (ActionBarSherlock), können Sie den speziellen Import-Assistenten veranlassen, also gehen Sie weiter und klicken Sie auf Weiter und dann auf Beenden. In diesem Fall war es einfach

Bildbeschreibung hier eingeben

4. Und du bist fertig. Bildbeschreibung hier eingeben

aber manchmal funktionieren die debug- oder run-optionen nicht und eine errorsmeldung wird angezeigt

“Diese Projektstruktur basiert nicht auf Großbuchstaben oder migriert sie auf”

etwas zu lösen, schließen Sie das geöffnete Eclipse-Projekt und öffnen Sie dasselbe Projekt durch den gleichen process wie zuvor mit Import-Projekt (Eclipse ADT, Gradle, etc)) dieses Mal android Studio wird alle notwendigen Gradle-Dateien hinzufügen und grüne Debug-Option wird auch funktionieren . Ich habe das irgendwie versehentlich getan, aber es hat funktioniert, ich hoffe nur, dass es auch für dich funktioniert.

Versuchen Sie diese Schritte: 1- Klicken Sie auf Projekt importieren (Eclipse, ADT, …)

Bildbeschreibung hier eingeben

2- Wählen Sie das Hauptverzeichnis Ihres Eclipse-Projekts

Bildbeschreibung hier eingeben

3- Behalten Sie die Standardeinstellungen bei. Mit den ersten beiden Optionen können JAR-Dateien in Remote-Bibliotheken (Abhängigkeiten) geändert werden. Es bedeutet, während Android Studio zu bauen versuchen, Bibliothek in lokalen System oder Remote-Repositories zu finden. Die letzte Möglichkeit besteht darin, nach dem Import nur einen Ordner als App anzuzeigen.

Bildbeschreibung hier eingeben

4- Dann sehen Sie die Zusammenfassung der Änderungen

Bildbeschreibung hier eingeben

5- Wenn Sie feststellen, dass die Gradle-Projekt-Synchronisierung fehlgeschlagen ist, sollten Sie zur Projektansicht (linke obere Ecke) gehen. Dann sollten Sie zu Ihrer Projekt-> App gehen und build.gradle öffnen.

Bildbeschreibung hier eingeben

6- Dann sollten Sie Ihre compilesdkVersion und targetsdkVersion auf Ihre aktuelle Version ändern, die Sie in buildToolsVersion sehen (meins ist 23). Zum Beispiel sollte ich in meinem Projekt an zwei Stellen 17 zu 23 wechseln

7- Wenn Sie einen Fehler in Ihren Abhängigkeiten sehen, sollten Sie die Version ändern. Zum Beispiel muss ich in meinem Projekt überprüfen, welche Version der Android-Support-Bibliothek ich verwende. Also, ich öffne den SDK-Manager und gehe nach unten, um die Version zu sehen. Dann sollte ich meine Android-Studio-Version durch meine aktuelle Version ersetzen und klicken Sie erneut in der oberen rechten Ecke

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

Ich hoffe, es hilft.

Android Studio wurde seit der Veröffentlichung dieser Frage verbessert, und die neuesten Versionen von Android Studio (zum jetzigen Zeitpunkt 2.1.1) verfügen über ziemlich gute Importfunktionen für Eclipse, so dass Eclipse-Projekte jetzt direkt in Android Studio importiert werden können Ansatz für die Migration von Projekten von Eclipse nach Android Studio.

Ich werde beschreiben, wie dies im Folgenden zu tun ist, einschließlich einiger der Fallstricke, denen man begegnen könnte. Ich werde mich insbesondere mit dem Import eines Eclipse-Arbeitsbereichs beschäftigen, der mehrere Apps enthält, die eine oder mehrere Projektbibliotheken gemeinsam nutzen (die bisher veröffentlichten Ansätze scheinen nur das Importieren eines Eclipse-Anwendungsprojekts und seiner Projektbibliotheken zu ermöglichen). Obwohl ich mich nicht mit allen möglichen Problemen befasse, gehe ich in einigen von ihnen sehr detailliert vor. Ich hoffe, dass sie denjenigen helfen werden, die diesen process zum ersten Mal selbst durchmachen.

Ich habe die Projekte kürzlich aus einem Eclipse-Arbeitsbereich importiert. Dieser Arbeitsbereich enthielt vier Bibliotheksprojekte, die jeweils für bis zu neun Projekte freigegeben wurden.

Etwas Hintergrund:

Ein Eclipse-Arbeitsbereich enthält mehrere Projekte, z. B. Bibliotheksprojekte oder Apps.

Ein Android Studio- Projekt entspricht einem Eclipse- Arbeitsbereich , da es sowohl Bibliotheksprojekte als auch Apps enthalten kann. Ein Bibliotheksprojekt oder eine App wird jedoch von einem “Modul” in Android Studio repräsentiert, während es in Eclipse durch ein “Projekt” repräsentiert wird.

Zusammenfassend gesagt: Eclipse-Arbeitsbereiche enden als Android Studio-Projekte, und Eclipse-Projekte in einem Arbeitsbereich enden als Android Studio-Module in einem Projekt.

Sie sollten den Importvorgang starten, indem Sie ein Android Studio-Projekt erstellen (Datei / Neu / Neues Projekt). Sie könnten diesem Projekt den gleichen (oder ähnlichen) Namen geben, den Sie Ihrem Eclipse-Arbeitsbereich gegeben haben. Dieses Projekt enthält schließlich alle Ihre Module, jeweils eines für jedes Eclipse-Projekt (einschließlich Projektbibliotheken), die Sie importieren.

Der Importvorgang ändert Ihre ursprünglichen Eclipse-Dateien nicht, solange Sie die importierten Dateien in einer anderen Ordnerhierarchie ablegen. Daher sollten Sie einen Ordner für dieses Projekt auswählen, der sich nicht in Ihrer ursprünglichen Eclipse-Hierarchie befindet. Wenn sich Ihre Eclipse-Projekte beispielsweise alle in einem Ordner namens Android befinden, können Sie einen gleichgeordneten Ordner namens AStudio erstellen.

Ihr Android Studio-Projekt kann dann als Unterordner dieses neuen Ordners erstellt werden. Der Assistent für neue Projekte fordert Sie auf, diesen Projektordner auf oberster Ebene einzugeben, in dem er Ihr Projekt erstellt.

Der neue Projektassistent von Android Studio fordert Sie dann auf, zum Zeitpunkt der Erstellung des Projekts ein einzelnes Modul zu konfigurieren. Das kann zunächst ein wenig verwirrend sein, weil sie Ihnen nie wirklich sagen, dass Sie ein Modul erstellen, aber Sie sind es; Sie erstellen ein Projekt mit einem einzelnen Modul darin. Offensichtlich muss für jedes Projekt mindestens ein Modul vorhanden sein. Da Sie also auf Eclipse angewiesen sind, um Ihre Module bereitzustellen, ist Ihr erstes Modul ein Platzhalter, der diese formalen Anforderungen nicht erfüllt.

Daher werden Sie wahrscheinlich ein initiales Modul für Ihr Projekt erstellen wollen, das so wenig wie möglich tut. Wählen Sie daher Telefon und Tablet als den Typ Ihres Moduls, akzeptieren Sie das Standard-SDK (API-Ebene 8) und wählen Sie Keine Aktivität hinzufügen für Ihr Modul aus.

Wählen Sie als Nächstes eines der Eclipse-App-Projekte in Ihrem Arbeitsbereich aus, für das die größte Anzahl an Bibliotheken als erstes importiertes Projekt erforderlich ist. Dies hat den Vorteil, dass beim Import dieses Projekts alle Bibliotheksprojekte, die es verwendet (direkt oder indirekt, wenn einige Ihrer Bibliotheksprojekte selbst andere Bibliotheksprojekte erfordern), als Teil des Importprozesses importiert werden .

Jedes dieser importierten Projekte erhält ein eigenes Modul in Ihrem Android Studio-Projekt. Alle diese Module sind untereinander Geschwister (sowohl in Ihrer Projekthierarchie als auch in der Ordnerhierarchie, in der ihre Dateien platziert sind), als ob Sie die Module separat importiert hätten. Die Abhängigkeiten zwischen den Modulen werden jedoch für Sie (in den build.gradle-Dateien Ihrer App) als Teil des Importprozesses erstellt.

Beachten Sie, dass Sie nach dem Importieren, Testen und Debuggen dieses “am meisten abhängigen” Eclipse-Projekts und seiner unterstützenden Bibliotheksprojekte ein zweites Eclipse-Anwendungsprojekt (falls Sie einen zweiten in Ihrem Arbeitsbereich haben) und seine Bibliotheksprojektmodule importieren (Die zuvor importierten Dateien werden vom Importassistenten als vorhandene Module gefunden und für dieses neue Modul wiederverwendet, anstatt dupliziert zu werden.)

Sie sollten daher nie ein einzelnes Bibliotheksprojekt direkt aus Eclipse importieren müssen. Sie werden alle indirekt basierend auf ihren Abhängigkeiten von App-Projekten importiert, die Sie importieren. Dies setzt voraus, dass alle Ihre Bibliotheksprojekte im Arbeitsbereich erstellt wurden, um die Anforderungen eines oder mehrerer App-Projekte in demselben Arbeitsbereich zu erfüllen.

Um den Import dieses ersten App-Projekts in Android Studio auszuführen, wählen Sie während des gerade erstellten Projekts Datei / Neu / Neues Modul. Sie könnten denken, dass Sie Datei / Neu / Import-Modul verwenden sollten, aber nein , sollten Sie nicht , denn wenn Sie das tun, wird Android Studio ein neues Projekt erstellen, um das importierte Modul zu speichern, und es wird Ihr Modul in das Projekt importieren . Sie könnten tatsächlich Ihr erstes Modul auf diese Weise erstellen, aber dann benötigen die zweiten bis N-ten Module immer noch, dass Sie diese andere Methode verwenden (um ein Modul in ein bestehendes Projekt zu importieren), und ich denke, dass ich mit einem “leeren” Projekt anfange (oder vielmehr, eines mit seinem eigenen leeren, Do-nothing-Platzhalter-Modul), und dann importieren Sie jedes Ihrer Eclipse-Projekte als ein neues Modul in dieses Projekt (dh der Ansatz, den wir hier nehmen), kann weniger verwirrend sein.

Also nimmst du dein praktisch leeres neues Projekt und führst darin ein File / New / New Module durch. Der Assistent, den Sie aufrufen, gibt Ihnen die Wahl, welche Art von Modul Sie erstellen möchten. Sie müssen “Eclipse-ADT-Projekt importieren” auswählen. Das ist der Zugriff auf den Assistenten, der weiß, wie ein Eclipse-Projekt in ein Android Studio-Modul (zusammen mit den Bibliotheksmodulen, auf die es angewiesen ist) in Ihrem aktuellen Android Studio-Projekt konvertiert werden kann.

Wenn Sie nach einem Quellordner gefragt werden, sollten Sie den Ordner für Ihr Eclipse-Projekt eingeben (dies ist der Ordner, der die Datei AndroidManifest.xml dieses Projekts enthält).

Der Import-Assistent zeigt dann den Modulnamen an, den Sie erstellen möchten (ähnlich dem Namen Ihres ursprünglichen Eclipse-Projekts, jedoch mit einem Kleinbuchstaben), da dies eine Konvention ist, die Modulnamen von Projektnamen unterscheidet (die mit einem übergeordneten beginnen). (Groß- / Kleinschreibung). Es funktioniert normalerweise sehr gut, um diesen Standard zu akzeptieren.

Unter dem Modulnamen befindet sich ein Abschnitt mit dem Titel “Zusätzliche erforderliche Module”. Dies listet alle Bibliotheken auf, die von dem Modul, das Sie importieren (oder von einer seiner Bibliotheken usw.), benötigt werden. Da es sich um das erste Modul handelt, das Sie importieren, ist keines davon bereits in Ihrem Projekt vorhanden. Daher wird bei jedem dieser Module das Kontrollkästchen “Importieren” standardmäßig aktiviert. Sie sollten diese Kontrollkästchen aktiviert lassen, da Sie diese Module benötigen. (Beachten Sie, dass beim Import späterer Eclipse-App-Projekte, wenn eine Bibliothek, die sie benötigen, bereits importiert wurde, diese Bibliotheken immer noch hier angezeigt werden, aber die Notiz “Projekt enthält bereits Modul mit diesem Namen” und das Feld Importieren Standardmäßig sollten Sie das Kontrollkästchen nicht aktivieren, damit das importierte Modul die neu importierten Module mit den Bibliotheken verbindet, die bereits importiert wurden Namen, die Android Studio für Ihre Module erstellt, sind wichtig, damit die IDE diese Bibliotheksmodule finden und wiederverwenden kann.

Als Nächstes wird der Importeur anbieten, alle jars und Bibliotheksquellen durch Gradle-Abhängigkeiten zu ersetzen und camelCase-Modulnamen für abhängige Module zu erstellen, wobei alle diese Optionen standardmäßig überprüft werden. Sie sollten diese Optionen generell aktiviert lassen und fortfahren. Lesen Sie die Warnung jedoch über mögliche Probleme. Denken Sie daran, dass Sie ein importiertes Modul oder Module immer (über den Dialog Projektstruktur) löschen und den Importvorgang erneut starten können.

Die nächste Anzeige, die ich erhalten habe (YMMV), behauptet, dass das Android Support Repository nicht in meiner SDK-Installation installiert ist. Es bietet eine Schaltfläche zum Öffnen des Android SDK-Managers für die Installation. Dieser Knopf funktionierte jedoch nicht für mich. Ich habe den SDK-Manager manuell als separate App geöffnet und festgestellt, dass das Android Support Repository bereits installiert wurde. Es gab jedoch ein Update. Ich habe das installiert und im Importdialog auf die Schaltfläche Aktualisieren geklickt, aber das hat nichts bewirkt. Also ging ich weiter, und der vermeintliche Mangel an diesem Repository schien den Importprozess nicht zu schaden (obwohl ich später Meldungen erhielt, dass er fehlte, während ich mit dem importierten Code arbeitete, den ich beheben konnte) durch Klicken auf einen bereitgestellten Link, der das Problem zumindest vorübergehend behoben hat. Letztendlich ist dieses Problem weggefallen, als ich ein Update für das Repository installiert habe, so dass Sie es möglicherweise gar nicht mehr erleben.

An dieser Stelle werden Sie auf Fertig stellen klicken und nach einiger Zeit sollten Sie Ihre Module erstellen und sie erstellen. Wenn alles gut geht, sollten Sie in Ihrer Gradle-Konsole eine BUILD SUCCESSFUL-Nachricht erhalten.

Eine Besonderheit ist, dass die importierten Module in der Projekthierarchie möglicherweise nicht angezeigt werden, wenn der Build fehlschlägt. Es scheint, dass Sie zum ersten gültigen Build gelangen müssen, bevor die neuen Module dort erscheinen (jedenfalls meine Erfahrung). Sie können die neuen Module im Dialogfeld “Datei / Projektstruktur” immer noch sehen (z. B. wenn Sie sie löschen und den Import starten möchten).

Denken Sie daran, dass Sie, da Sie Ihre ursprünglichen Eclipse-Projekte nicht ändern, die Module, die Sie gerade importiert haben, immer löschen können (wenn der Import schlecht wird), und beginnen Sie noch einmal von vorne. Sie können sogar Änderungen an der Eclipse-Seite vornehmen, nachdem Sie Ihre Android Studio-Module gelöscht haben, damit der Import beim zweiten Mal besser wird (solange Sie Ihre Fallback-Fähigkeit beibehalten, Ihre vorhandene Quelle unter Eclipse zu erstellen). Wie Sie sehen werden, wenn wir die Versionskontrolle unten diskutieren, müssen Sie möglicherweise Ihre Fähigkeit zum Erstellen unter Eclipse beibehalten, da die Projektstruktur unter Android Studio geändert wird. Wenn Sie also zu einem Commit zurückkehren müssen, das Ihrem vorausgeht Um zu Android Studio zu wechseln (zB um einen Bugfix zu beheben), werden Sie die Möglichkeit haben, dieses frühere Commit in Eclipse zu erstellen.

Um ein Modul zu löschen, müssen Sie Datei / Projektstruktur auswählen, dann das Modul auf der linken Seite des Dialogs auswählen und dann die Löschtaste drücken. Aus irgendeinem Grund konnte ich ein Modul nicht direkt in der Projekthierarchie löschen. es musste mit diesem Projektstrukturdialog gemacht werden.

Der Importassistent generiert eine Datei “import-summary.txt”, die eine detaillierte Liste aller möglicherweise aufgetretenen Probleme sowie Maßnahmen zur Behebung dieser Probleme enthält. Sie sollten es sorgfältig lesen, da es Hinweise darauf geben kann, was passiert, wenn Sie Probleme beim Erstellen oder Ausführen des importierten Codes haben. Es hilft Ihnen auch, Dinge zu finden, die der Importeur bewegt, um die unterschiedliche Struktur von Android Studio-Projekten zu berücksichtigen.

Wenn alles nicht gut geht, dann sollten Sie sich diese möglichen Probleme anschauen und Lösungen für diese Probleme finden:

Im Allgemeinen gibt es zwei Hauptarten von Problemen, denen ich begegnete:

  1. Proguard-Probleme
  2. Offensichtliche Probleme

Wenn Proguard versaut ist, stimmen die (verschleierten) Namen der Methoden in Ihren Bibliotheken möglicherweise nicht mit den Namen überein, mit denen sie aus Ihrer App aufgerufen werden, und Sie erhalten Compiler-Fehler wie “error: kann die Symbolklasse nicht finden …”

In Eclipse wird Proguard-Kram für Bibliotheksprojekte ziemlich ignoriert, mit dem Proguard-Kram für jedes App-Projekt, das Sie erstellen, um die Verschleierung usw. für nicht nur sich selbst, sondern für die Verarbeitung aller Bibliotheken zu bestimmen, von denen es abhängt. Und das ist im Allgemeinen, was Sie wollen.

In Android Studio müssen Sie jedoch einige Änderungen vornehmen, um denselben Effekt zu erzielen. Im Grunde wird in den build.gradle-Dateien für jedes Ihrer Bibliotheksprojekt-Module Folgendes gewünscht:

 buildTypes { release { minifyEnabled false consumerProguardFiles 'proguard.cfg' } } 

Wobei proguard.cfg die eigene Programmkonfigurationsdatei Ihres Bibliotheksmoduls ist.

Der Begriff “Consumer” in “consumerProguardFiles” bezieht sich offenbar auf das App-Modul, das dieses Bibliotheksmodul verwendet. Daher werden die Befehle progard von dieser App bevorzugt denen des Bibliotheksmoduls selbst verwendet, und dies führt offensichtlich zu Verschleissungen, die koordiniert und kompatibel sind, so dass alle Aufrufe von dem App-Modul zu seinen Bibliotheksmodulen mit übereinstimmenden Symbolen gemacht werden.

Diese “consumerProguardFiles” -Einträge werden nicht automatisch während des Importvorgangs erstellt (zumindest war dies meine eigene Erfahrung). Daher sollten Sie sicherstellen, dass Sie diese in den build.gradle-Dateien Ihrer Bibliotheksmodule bearbeiten, wenn sie nicht während des Imports für Sie erstellt werden .

Wenn Sie Ihre Bibliotheksprojekte getrennt, mit Verschleierung, verteilen möchten, benötigen Sie eine eigene Programmdatei für sie; Ich habe das selbst nicht gemacht, und das geht über den Rahmen dieser Antwort hinaus.

Im App-Modul werden Sie so etwas wollen:

 buildTypes { release { minifyEnabled true proguardFiles 'proguard.cfg' } } 

(Übrigens, während ich schreibe, während meine Apps gut laufen, habe ich noch nicht direkt bestätigt, dass die Dinge bei diesem Ansatz tatsächlich verschleiert werden, also überprüfe das selbst – zB indem du einen Decompiler wie apktool verwendest. Ich werde es sein Überprüfen Sie dies später, und werde diese Antwort bearbeiten, wenn ich diese Informationen bekomme).

Die zweite Art von Problem liegt an der Tatsache, dass Eclipse die Manifestdateien für Bibliotheksprojekte beim Kompilieren eines App-Projekts, das diese Bibliotheksprojekte verwendet, ziemlich ignoriert, während es in Android Studio eine Verschachtelung der beiden gibt, die anscheinend nicht konsequent priorisiert das Manifest der App über denen ihrer Bibliotheken.

Ich begegnete dem, weil ich ein Bibliotheksmanifest hatte, das (nur zu Dokumentationszwecken) eine abstrakte Aktivitätsklasse als Hauptaktivität auflistete. Es gab eine class, die von dieser abstrakten class in meiner App abgeleitet wurde und im Manifest jeder App deklariert wurde, die die Bibliothek verwendet hat.

In Eclipse hat dies nie zu Problemen geführt, da die Bibliotheksmanifeste ignoriert wurden. Aber in Android Studio endete ich mit dieser abstrakten class als meiner Aktivitätsklasse für die App, die einen Laufzeiterrors verursachte, als der Code versuchte, diese abstrakte class zu instanziieren.

Sie haben in diesem Fall zwei Möglichkeiten:

  1. Verwenden Sie die Toolsyntax, um bestimmte Bibliotheksmanifestdateien in Ihrem App-Manifest zu überschreiben – zum Beispiel:
  

oder,

  1. Entfernen Sie praktisch alles aus den Manifesten Ihrer Bibliotheksmodule und verlassen Sie sich auf das Manifest des App-Moduls, das jeden Wert liefert. Beachten Sie, dass Sie für jedes Bibliotheksmodul ein Manifest haben müssen, aber nicht viel mehr erforderlich ist als der Header und ein leeres Manifestelement mit nur einem Paketattribut.

Ich habe beides versucht und endete mit dem Ansatz 2., oben, als die einfachere Methode. Wenn Sie jedoch Ihre Bibliotheksmodule separat verteilen möchten, müssen Sie eine aussagekräftigere Manifestdatei erstellen, die die individuellen Anforderungen jedes Bibliothekmoduls widerspiegelt.

Es gibt wahrscheinlich einen "korrekeren" Weg, dies zu tun, der Anforderungen (z. B. Berechtigungen) für jede Bibliothek in das Bibliotheksmanifest selbst bringt und es ermöglicht, dass der automatische Verschachtelungsprozess diese mit den für die App erklärten verbindet. Da Eclipse die Manifeste für Bibliotheken ignoriert, scheint es zumindest sicherer zu sein, sich zunächst vollständig auf die App-Manifeste zu verlassen und die Bibliotheksmanifeste nur bis auf die Knochen zu entfernen.

Beachten Sie, dass einige der Projekteigenschaften und auch die Manifestattribute aus Ihrem Eclipse-Projekt zum Erstellen von Teilen Ihrer build.gradle-Dateien verwendet wurden. Genauer gesagt, Ihre compileSdkVersion in build.gradle wird aus den Eclipse-Projekteigenschaften auf die Projektbuildversion gesetzt, applicationId ist der Paketname aus dem Manifest Ihrer App, und minSdkVersion und targetSdkVersion werden ebenfalls aus der Manifestdatei der Anwendung kopiert. Der Abschnitt Abhängigkeiten von build.gradle stammt aus den Abhängigkeiten des Bibliotheksprojekts in den Projekteigenschaften.

Beachten Sie, dass dadurch einige Ihrer AndroidManifest.xml-Werte redundant und möglicherweise residuell (dh unbenutzt) werden. Dies könnte zu Verwirrung führen. Meines Erachtens sind die build.gradle-Werte diejenigen, die tatsächlich eine Wirkung haben, und dass die Manifest-Werte wie targetSdkVersion nicht mehr für Konstruktionszwecke verwendet werden. Sie können jedoch weiterhin von App-Stores wie Google Play verwendet werden. Ich weiß nicht genau, auf die eine oder andere Weise, also behalte ich sie jetzt im Tandem.

Neben den oben genannten zwei Arten von Problemen gibt es weitere routinemäßige Dinge wie das Importieren eines Projekts mit einer Projekt-Build-Stufe von 22, wenn Sie SDK Level 23 nur in Android Studio installiert haben. In dieser Situation ist es wahrscheinlich besser, die Datei build.gradle des App-Moduls so zu bearbeiten, dass compileSdkVersion von 22 (der importierte Wert) auf 23 verschoben wird, als wenn das SDK für Level 22 installiert würde, aber beide Ansätze sollten funktionieren.

Während des gesamten processes, wenn etwas nicht ordnungsgemäß erstellt wird und Sie eine Änderung vornehmen, um es anzusprechen, sollten Sie versuchen, Projekt und / oder Tools / Android / Sync-Projekt mit Gradle-Dateien zu erstellen und / oder Datei / Ungültig zu machen Caches / Restart, um sicherzustellen, dass Ihre Änderungen vollständig übernommen wurden. Ich weiß nicht genau, wann diese wirklich notwendig sind, weil ich nicht weiß, wie viel inkrementell getan wird, wenn Sie noch nicht erfolgreich gebaut wurden, aber ich habe sie alle ziemlich regelmäßig als eine Art abergläubisches Ritual aufgeführt, und ich bin ziemlich sicher, dass es geholfen hat. Als ich zum Beispiel einen Resources $ NotFound-Laufzeiterrors bekam, der von der Unfähigkeit zu finden schien, die Start-Icon-Ressource zu finden, habe ich alle drei versucht, und das Problem wurde behoben.

Wenn Sie die oben genannten Schritte für Ihr erstes Eclipse-Projekt durchgeführt und einen erfolgreichen Build erreicht haben, können Sie mit etwas Glück Ihr App-Modul aus dem Drop-down-Menü am oberen Rand der Android Studio-Anzeige links neben der Wiedergabeschaltfläche auswählen Spielen Sie die Taste selbst, wählen Sie dann ein Gerät oder ein virtuelles Android-Gerät aus, und die App sollte zum Ausführen geladen werden.

Ebenso sollten Sie in der Lage sein, eine signierte Kopie Ihrer App mit der Build / Generate Signed APK-function zu erstellen. Beachten Sie, dass einige importbezogene Fehler auftreten können, wenn Sie Ihre signierte Kopie ausführen, die nicht bei der Verwendung der Wiedergabeschaltfläche angezeigt wird. Sie müssen also sicherstellen, dass beide funktionieren, bevor Sie entscheiden, dass der Import abgeschlossen ist.

Danach sollten Sie wahrscheinlich die Versionskontrolle aktivieren. Ich benutze Git selbst, aber es gibt eine Reihe anderer Optionen zur Verfügung.

Die Versionskontrolle geht meist über den Rahmen dieser Antwort hinaus, aber es gibt einige Dinge, die vom Importprozess betroffen sind. Erstens, in Eclipse haben Sie vielleicht Ihre verschiedenen Projekte in verschiedenen Ordnern, aber wenn Sie in Android Studio importieren, werden alle Module als direkte untergeordnete Ordner Ihres Hauptprojektordners erstellt. Wenn Sie also einen separaten Git-Ordner für jedes Projekt in Eclipse oder für verwandte Gruppen von Projekten haben, die in einem übergeordneten Ordner für jede Gruppe organisiert sind (wie ich es getan habe), wird das nicht gut in Android Studio übersetzt.

Mein Wissen darüber ist begrenzt, da ich noch nicht mit der Versionskontrolle in Android Studio gearbeitet habe, also gibt es vielleicht einen Weg, aber es scheint, dass die gesamte Versionskontrolle in Android Studio auf der Projektebene vereinheitlicht ist Die Module befinden sich in einem einzigen Git-Archiv.

Dies bedeutet, dass Sie möglicherweise Ihr altes Git-Archiv beenden und mit einem neuen Archiv für Ihren importierten Quellcode beginnen müssen. Und das bedeutet, dass Sie Ihr altes git-Archiv behalten möchten, damit es mit Eclipse zumindest für eine gewisse Zeit zur Verfügung steht. Und Sie wollen auch, dass es eine Geschichte Ihres Projekts bewahrt.

Wenn Sie das Glück haben, alle Ihre Projekte in einem einzigen Eclipse-Arbeitsbereich organisiert zu haben, und wenn Sie nur ein einziges Git-Archiv für diese Projekte verwenden, kopieren Sie möglicherweise einfach Ihr altes Git-Archiv in und unter Ihrem Eclipse-Arbeitsbereichsordner in und in Ihrem Android Studio-Projektordner. Dann könnten Sie alle noch relevanten .gitignore-Objekte aus Ihrem Eclipse-Projekt in die automatisch generierte .gitignore-Datei für Ihr Android Studio-Projekt bearbeiten und herausfinden, was während des Importvorgangs geändert wurde (und einige Dinge wurden bereits behoben verschoben - zum Beispiel befindet sich die Manifest-Datei nicht mehr auf der obersten Ebene Ihres Moduls. Andere haben berichtet, dass Git ziemlich gut darin ist herauszufinden, was sich geändert hat; Ich habe das selbst nicht versucht.

Aber selbst wenn Sie dies tun würden, würde die Rückkehr zu einem Commit vor dem Wechsel von Eclipse zu Android Studio auf eine Reihe von Dateien zurückgehen, die nur innerhalb von Eclipse sinnvoll wären. Es klingt also gut, "schwierig" damit zu arbeiten. Zumal Eclipse immer noch auf seine ursprünglichen Projektordner verweist.

Ich persönlich hatte mehrere git-Archive für meine verschiedenen Gruppen verwandter Projekte, und so entschied ich mich, einfach eine saubere Pause zu machen und git wieder in Android Studio zu beginnen. Wenn Sie dies tun müssten, könnte dies Ihre Planung beeinträchtigen, da Sie in diesem Fall an einem sehr stabilen Punkt in Ihrer Codeentwicklung arbeiten möchten, bevor Sie den Umzug durchführen, da Sie in Ihrem Versionskontrollsystem weniger Zugriff auf diesen älteren Code haben System (z. B. Möglichkeit zum Zusammenführen mit Post-Import-Code), sobald Sie den Umzug in Android Studio vorgenommen haben.

Der Teil dieser Antwort, der Git betrifft, ist teilweise spekulativ, da ich noch nicht mit der Versionskontrolle meiner importierten Projektdateien gearbeitet habe, aber ich wollte sie einbeziehen, um eine Vorstellung von den Herausforderungen zu geben, und ich plane, meine Antwort zu aktualisieren nachdem ich mehr mit Versionskontrolle in Android Studio gearbeitet habe.

According to http://tools.android.com/tech-docs/new-build-system/migrating-from-eclipse-projects , You have a couple of choices
– simply importing
– pre-exporting first from Eclipse.

Pre-exporting from eclipse may be the better choice if your project contains a lot of relationships that are Eclipse-specific. AS cannot ‘translate’ everything Eclipse can produce. If you want to continue using Eclipse as well as AS on this project code, this is the better choice. If you choose this method, please read the above link, there are some important pre-requisites.

Simply importing into AS will let AS ‘translate’ and rearrange the project, and is the recommended method, especially if you have no intention of returning to Eclipse. In this case, you let the AS wizard do everything and you dont need to manually generate gradle files.

In addition to the answer by Scott Barta above, you may still have import problems if there are references to Eclipse workspace library files, with eg

 /workspace/android-support-v7-appcompat 

being a common one.

In this case the import will halt until you provide a reference (and if you’ve cloned from a git repo, it probably won’t be there) and even pointing to your own install (eg something like /android-sdk-macosx/extras/android/m2repository/com/android/support/appcompat-v7) won’t be recognised and will halt the import, leaving you in no-man’s land.

To get around this, look for refs in the project.properties or .classpath files that came in from the Eclipse project and remove/comment them out, eg

  

That will get you past the import stage and you can then add these refs in your build.gradle (Module:app) as indicated in the Android tutorial , like below:

 dependencies { compile 'com.android.support:appcompat-v7:22.2.0' } 

Here is a simpler way to migrate:

Start off with a sample Android Studio project. Open android studio and create a new project (or) just download a ‘sample’ studio project here: https://github.com/AppLozic/eclipse-to-android-studio-migration . Now, open the downloaded project in Android Studio by following the below instructions.

Import eclipse project modules into Android Studio. Select File -> New -> Import Module Image title

Next, select the path of the eclipse project and import the modules. In case, if you see the message “Failed to sync Gradle project,” then click on “Install Build Tools and sync project…”

Now, remove the sample project modules by following the below simple steps:

Open settings.gradle and remove “include ‘:app’” Right click on “app” module and “Delete” it. Now, what we have is the Eclipse project open in Android studio with the Gradle build.

Here are few other links which might help you:

http://developer.android.com/sdk/installing/migrate.html Source: http://www.applozic.com/blog/migrating-project-from-eclipse-to-studio/

Simple steps: 1.Go to Android Studio. 2.Close all open projects if any. 3.There will be an option which says import non Android Studio Projects(Eclipse ect). 4.Click on it and choose ur project Thats’t it enjoy!!!

The best way to bring in an Eclipse/ADT project is to import it directly into Android Studio. At first GO to Eclipse project & delete the *project.properties** file.After that, open the Android studio Tool & import Eclipse project(Eclipse ADT, Gradle etc).

— Thanks and Regards

Rakesh Kumar Jha Android Developer

Stop installing android studio 3.0.1 and go back 2.3.3 ( Stable version) . Check for the stable version and you can find them a lot

All you have to do uninstall and go back to the other version. Yes it asks to create gradle file seperately which is completely new to me!

Failure is the stepping stone for success..