Wenn ich Änderungen in meinem Android-Bibliotheksprojekt vorgenommen habe, muss ich manuell aktualisieren und manchmal alle Projekte bereinigen, die die Bibliothek verwenden. Ist das normal? Gibt es einen Weg dahin?Android Library-Projekte und müssen manuell aktualisiert werden
Antwort
Das stimmt. Wenn Ihre Bibliothek ein Jar erstellt, das Sie dem Android-Projekt hinzugefügt haben, müssen Sie sie aktualisieren (Sie können auch einfach mit der rechten Maustaste klicken und die externe Jar-Referenz aktualisieren, um Zeit zu sparen).
Ich hatte das gleiche Problem vor ein paar Wochen. Ich habe nicht die Lösung gefunden, die ich wollte, nämlich die Quellen direkt im Bibliotheksprojekt zu verändern und die abhängigen Projekte automatisch aufzufrischen, aber ich fand etwas Besseres als das Chaos des ständig Auffrischens und Putzens.
Der beste Weg, den ich finden konnte, war die Verwendung des verknüpften Bibliotheksordners aus dem abhängigen Projekt, an dem gerade gearbeitet wird, so dass das Projekt die Änderungen live sieht. Wenn Sie zu einem anderen abhängigen Projekt springen, müssen Sie immer noch die Dateien aktualisieren, die im anderen Projekt geändert wurden (normalerweise nur der Ordner src). Möglicherweise müssen Sie das Bibliotheksprojekt aktualisieren, wenn Sie direkte Änderungen vornehmen möchten. Es klingt vielleicht nicht wie eine große Hilfe, aber wenn Sie große Teile der Zeit in einem einzigen abhängigen Projekt verbringen (wie es bisher der Fall war), hilft es wirklich.
Ihre Methode ist die alte Methode zum Teilen von Code zwischen Projekten. Das Problem dabei ist, dass Sie die Möglichkeit verlieren, Ressourcen zu teilen. Der Hauptgrund für die Verwendung von Bibliotheken besteht darin, die gemeinsame Nutzung von Ressourcen (und damit die Verteilung von .jar-Bibliotheken, die mit Ressourcen gebündelt sind) zu ermöglichen. – Vaiden
Ich habe eine Problemumgehung für dieses Problem gefunden. Die Grundidee besteht darin, einen benutzerdefinierten Ant-Builder zu verwenden, da er die Möglichkeit bietet, eine bestimmte Ressource oder den gesamten Arbeitsbereich auf sauberes, manuelles oder automatisches Build zu aktualisieren.
sind also hier die Schritte:
1) Erstellen Sie eine einfache ant-Datei mit einem leeren Stummel Ziel:
<?xml version="1.0" encoding="UTF-8"?>
<project name="android" >
<target name="refresh" />
</project>
2) Name it "lib-refresher.xml" und legen Sie sie in den Ordner wo sich die .project-Datei der Anwendung befindet.
3) Jetzt gehen Sie zu Eclipse, finden Sie das Projekt, das Android-Bibliothek (nicht Bibliothek Projekt selbst) verwendet.
4) Für dieses Projekt finden Sie unter: Projekt -> Eigenschaften -> Builder
5) Erstellen Sie neue Builder, wählen Sie Ant-Task, wählen angegeben "lib-refresher.xml", wählen Sie Build-Basisordner.
6) wichtig - Refresh Registerkarte ant Builder Aufgabe wählen Sie "Spezifische Ressourcen" und Sie Bibliothek abhängig Projekt auswählen.
7) wichtig - On Target Registerkarten wählen Sie "refresh" Ziel für die Build-Varianten: Clean, Manuell gebaut, Auto gebaut.
8) wichtig - Änderungen speichern, Ihren neuen benutzerdefinierte ant builder nach oben bewegen von Bauherr stapeln.
Jetzt wird das ganze Projekt kurz vor der Erstellung und Mittagessen Anwendung aktualisieren. Dies schließt alle Änderungen ein, die an einem Bibliotheksprojekt in einem Anwendungsprojekt vorgenommen wurden. Welches ist was benötigt wurde.
(Dies kann auch andersherum geschehen: Das Bibliotheksprojekt kann den gesamten Arbeitsbereich aktualisieren, wenn Autobuild gestartet wird. Dies mag etwas übertrieben sein, kann aber einige schwierigere Fälle lösen).
Funktioniert. Sollte akzeptiert werden – znat
Ich habe Stand Projekt in Arbeitsbereich (Android-Bibliothek und Android App) und wenn ich irgendwelche Änderungen in der Bibliothek gemacht i Projekt mit App aktualisieren müssen, aber dies behoben mein Problem:
(Application) project properties -> Java Build Path -> Tab Projects
und es i habe meine Android-Bibliothek hinzugefügt.
- 1. Müssen Sie QValidator manuell löschen?
- 2. Ressourcen, die in C# manuell bereinigt werden müssen?
- 3. Kann die eingebettete Google Map automatisch aktualisiert werden, ohne dass sie manuell aktualisiert werden muss?
- 4. Android Unit Tests werden nicht aktualisiert
- 5. Seltsames SVN-Szenario - Checkouts müssen ohne SSH-Zugriff aktualisiert werden
- 6. Sony Smartwatch 3 Google Play-Dienste müssen aktualisiert werden
- 7. Müssen oAuth2 Token manuell ohne Passwort erstellen
- 8. GridView - Wie man EntityDataSource manuell aktualisiert?
- 9. Müssen Datenbankverbindungen geschlossen werden?
- 10. Aktualisiert app.config manuell eine gute Idee?
- 11. Android toggleButton.setOnText und .invalidate nicht aktualisiert Text
- 12. Android-Aktivität 'manuell' starten
- 13. Welche Buchstaben- und Zahlenmixups müssen berücksichtigt werden?
- 14. Dropdown-Werte und Text müssen getrimmt werden
- 15. Wie man Relay Store ohne Abfrage des Servers manuell aktualisiert?
- 16. Redraw ActionBar in Android manuell
- 17. sequelize.js - Sie müssen das mysql-Paket manuell installieren
- 18. Datum und Uhrzeit werden nicht aktualisiert
- 19. Hibernate: IDs für diese Klasse müssen vor dem Aufruf von save() manuell zugewiesen werden.
- 20. Sie müssen statische Dateien in C#/ASP.NET manuell zwischenspeichern?
- 21. Müssen Sie den Ordner .m2/repository manuell erstellen
- 22. org.hibernate.id.IdentifierGenerationException: IDs für diese Klasse müssen vor dem Aufruf von save() manuell zugewiesen werden:
- 23. Müssen Sie die Google Orte Autovervollständigung manuell starten
- 24. Müssen wir manuell nicht referenzierte Variablen in einem Abschluss bereinigen?
- 25. Android: Überprüfen, ob Laufzeitberechtigungen gefragt werden müssen oder nicht
- 26. Daten werden nicht aktualisiert
- 27. Wie man mehrere Mongo Dokumente manuell in NodeJs aktualisiert?
- 28. Wie man Android Browser mit dem neuesten (nächtlichen) Webkit manuell aktualisiert?
- 29. srcdir Attribute müssen gesetzt werden
- 30. Müssen Python-Skripte beendet werden?
Ich denke, es ist normal, zumindest wenn Sie Eclipse verwenden. Das liegt daran, dass der Arbeitsbereich des Eclipse über einen Cache mit den Ressourcen verfügt, die für das Projekt verwendet werden. Daher muss er aktualisiert werden, um externe Änderungen zu erkennen. – Cristian