So hängen Sie die Quelle an android.jar an


73

Ich bin neu in Android. Ich arbeite im Windows-Betriebssystem mit der Eclipse-IDE. Meine einfache Anwendung hat einen Spinner, der eine Liste aus der Datenbankspalte auffüllt. Wenn ich auf die Spinner-Klasse klicke, sagt der Datei-Editor, dass die Quelle nicht gefunden wurde und die android.jar keinen Quellanhang hat.

Ich habe den Quellcode heruntergeladen und an dieser Stelle abgelegt:

android-sdk-windows\platforms\android-8

Dann habe ich diese Quelle folgendermaßen angehängt:

Klicken Sie mit der rechten Maustaste auf das Projekt => Erstellungspfad => Erstellungspfad konfigurieren => Bibliotheken => Quellanhang => Geben Sie den Pfad des heruntergeladenen Quellcodes an.

Aber ich habe keine Lösung für mein Debug bekommen. Wenn Sie auf den Drehfeld klicken, wird das Debug geöffnet, dass android.jar keinen Quellanhang hat.


Ändern Sie Ihre akzeptierte Antwort! Und wählen Sie mit
Bedacht

Antworten:


13

Um den Quellcode für android.jar anzuhängen, folgen Sie dem Tutorial unter dem folgenden Link: http://android.opensourceror.org/2010/01/18/android-source/ Stellen Sie sicher, dass Sie die richtige Plattformversion auswählen.

Wenn Sie Schwierigkeiten mit Spinner haben, versuchen Sie, den Beispielcode abzurufen und zu sehen, wie er funktioniert: http://developer.android.com/resources/samples/get.html

Viel Glück. :) :)

Aktualisieren

Diese Antwort ist ziemlich veraltet, bitte berücksichtigen Sie andere Antworten.


Es wäre gut, wenn Sie hier mindestens eine Zusammenfassung des Links posten würden. Wenn dieser Link aus irgendeinem Grund ausfällt, haben wir die gesamte Antwort verloren.
Dan Blows

@Blowski Wenn der Link ausfällt, können wir die JAR-Dateien nicht mehr abrufen, daher ist meine Zusammenfassung nicht mehr nützlich ... :) @Santhosh Bitte markieren Sie die Antwort als akzeptiert, damit die anderen dies leichter finden können.
thanhbinh84

7
Veraltete Antwort.
Ville Laitila

Sie werden wirklich um positive Stimmen für eine zugegebenermaßen falsche Antwort bitten?
Michael Mrozek

2
@doreamon Ich weiß, ich kann nicht glauben, was für ein Idiot ich bin, wenn ich eine völlig falsche Antwort ablehne. Ich hoffe, dass Sie sich durch das Abstimmen einiger meiner tatsächlich richtigen Antworten besser gefühlt haben
Michael Mrozek,

90

Das ist jetzt ganz einfach!

Gehen Sie zu Fenster-> Android SDK Manager und installieren Sie "Quellen für Android SDK".

Versuchen Sie nun, bei gedrückter Ctrl-Taste auf eine Android-Identifikation zu klicken. Sie erhalten die übliche Seite "Keine Quelle angehängt". Klicken Sie auf "Quelle anhängen" und wählen Sie einen externen Ordner aus.

Navigieren Sie nun zu /home/me/android-sdks/sources/android-16(oder wo immer Ihr SDK installiert ist; dies ist die Standardeinstellung) und klicken Sie auf OK.

Es sollte einen Moment nachdenken und dann die Quelle anzeigen! Ja!


Dies beinhaltete nur APIs 14-16 für mich. Ansonsten für mich den bevorzugten Weg, danke!
Cdr. Powell

2
Bis API 14 haben sie im SDK-Manager keine "Quellen für Android SDK" hinzugefügt. Jede nachfolgende Version hat diese Option bisher enthalten. Die meisten Entwickler sollten in der Lage sein, die API, auf die sie abzielen (nicht minSDK), zu erhöhen und die neueste API-Quelle in Eclipse zu verwenden.
Austyn Mahoney

2
Wenn dies nicht funktioniert, lesen Sie die Antwort von fsbmain, die letztendlich für mich funktioniert hat.
Cobrobicha

2
Dies hat bei mir nicht funktioniert: Der Dialog zum Anhängen der Quelle erwartet, dass eine ZIP- oder JAR-Datei gefunden wird, und lässt nicht zu, dass nur im Verzeichnis "OK" angezeigt wird. Dies ist mit ADT v21, Eclipse Juno.
Joe

Zu Joes Kommentar: "Der Quelldialog zum Anhängen erwartet, dass eine ZIP- oder JAR-Datei gefunden wird, und lässt nicht zu, dass nur im Verzeichnis" OK "angezeigt wird." .... Tatsächlich können Sie dies umgehen, indem Sie auf EXTERN klicken FOLDER-Taste rechts neben dem Feld PATH. Standardmäßig ist der externe Standortpfad auf EXTERNE DATEI eingestellt. (im Fenster SOURCE ATTACHMENT CONFIGURATION).
Sandi Laufenberg-Deku

85

Wenn Sie keine älteren API-Quellen benötigen, wird Ihnen die Antwort von Timmmm wahrscheinlich besser dienen. Wenn Sie Quellen benötigen, die älter als 14 Jahre sind, lesen Sie weiter ...

In Eclipse gehen Sie einfach zu

Hilfe -> Neue Software installieren

Fügen Sie dann die Update-Site hinzu

http://adt-addons.googlecode.com/svn/trunk/source/com.android.ide.eclipse.source.update/

und gehen Sie die Bewegungen durch, um es zu installieren.

Dies stellt gerne Quellen für alle installierten API-Versionen bereit und funktioniert für mich sehr gut. Weitere Dokumentation finden Sie hier

http://code.google.com/p/adt-addons/

Suchen Sie nach der Überschrift Android Sources


1
Die in Thomanskis Antwort erwähnte Methode ist der einzige Weg für mich. Ich bin unter Windows XP, Eclipse 3.7. Entschuldigung, ich kann noch keinen Kommentar hinzufügen.
Hoang Tran

Ich habe die Installation ausgeführt und habe keine Quelle. Gibt es noch mehr zu tun? Das verlinkte Dokument ist für mich nicht hilfreich. Ich brauche Schritt für Schritt.
Carl Manaster

1
Sehr gut. Leider scheint es nicht möglich zu sein, nur einige Android-Versionen auszuwählen. Sie müssen die Quelle für alle Versionen herunterladen.
Roland

1
arbeitete auch für mich. Ich wünschte auch, ich könnte eine bestimmte Android-Version auswählen.
Cliff

1
Der SDK-Manager hat jetzt Optionen zum Herunterladen des Android-Quellcodes. Leider scheint es nach der Installation keine Auswirkungen zu haben. Nein, ich habe es ausgearbeitet, siehe Antwort unten.
Timmmm

14

Wenn das Hinzufügen eines Ordners android-sdks/sources/android-17als externe Quelle nicht funktioniert (wie in meinem Fall), können Sie versuchen, Ordnerkopiequellen zu erstellen android-sdks/platforms/android-17/sources/android-17und Eclipse neu zu starten (ich habe Eclipse Juno Service Release 1). Nur so funktioniert es bei mir.

Schritte, um dies für Android-17 zu tun:

  1. Gehen Sie zum adroid-sdkInstallationsordner, für mich ist esd:\ws\android-sdks\
  2. Kopieren Sie den android-17Quellordner android-sdks\sources\android-17\in den Ordner android-sdks\platforms\android-17\sources\(Sie müssen den Ordner sourceshier manuell erstellen ), sodass der endgültige Pfad zu den Quellen wie folgt lauten muss:android-sdks\platforms\android-17\sources\android-17\
  3. Starten Sie die Eclipse neu, sie muss automatisch Quellen für Android-17 anhängen

UPD: die gleiche Lösung mit symlinks:

Windows Vista + (danke @ saleemrashid1 ​​für die Erwähnung mklinkin den Kommentaren):

1. cd platforms\android-17
2. mklink /D "sources\android-17" "..\..\..\sources\android-17"

Für Unix- basierte Betriebssysteme (@ Joe Kommentar):

Es funktioniert einwandfrei, das Verzeichnis zu erstellen und "sources / android-XX" mit "../../../sources/android-XX" zu verknüpfen:

mkdir platforms/android-19/sources && 
ln -s ../../../sources/android-19 platforms/android-19/sources/android-19. 

arbeitete auch für mich. Ich hatte auch ein ähnliches Problem wie Sie. Danke vielmals.
user1938357

Könnten Sie es bitte Schritt für Schritt beschreiben? Ich versuche das, aber es hilft nicht.
WindRider

2
Das hat auch bei mir funktioniert. Hinweis: Sie müssen cp -Rdie Quellen nicht kopieren ( ), es funktioniert einwandfrei, das Verzeichnis zu erstellen und den Link "sources / android-XX" mit "../../../sources/android-XX" zu verknüpfen : mkdir platforms/android-19/sources && ln -s ../../../sources/android-19 platforms/android-19/sources/android-19. Dies setzt natürlich voraus, dass Sie sich auf einer Plattform und einem Dateisystem befinden, die symbolische Links unterstützen (Mac OS X und Linux - Windows nicht)
Joe

1
mklink.exeist der lnBefehl -ish von Windows Vista und höher.

1
@ Joe und saleemrashid1 ​​Danke für die Tipps, ich habe sie in die Antwort aufgenommen
fsbmain

1

Was für mich funktioniert hat, folgt der Antwort in Murachs Android-Programmierung. Ich blieb beim Debuggen stecken und versuchte es ungefähr 3 Stunden lang herauszufinden, bevor ich zur nächsten Seite (im wahrsten Sinne des Wortes) überging, auf der stand: "Manchmal zeigt Eclipse eine Meldung an, dass die Quelle nicht gefunden wurde, weil ..." (-headdesk-)

Meine Lösung bestand darin, die Schrittfilterung zu aktivieren und die Pakete hinzuzufügen, die ich beim Debuggen überspringen wollte. Offensichtlich durchläuft Eclipse manchmal alle Quellcode-Bibliotheken, wenn Sie nur möchten, dass es Ihren Code durchläuft. Sie können dies umgehen, indem Sie die Pakete hinzufügen, die Sie zum Filter überspringen möchten. Laut Murach tun Sie dies einfach durch Ausprobieren, indem Sie alle Pakete auswählen und hinzufügen. Wenn Sie mit dem Debuggen fortfahren, müssen Sie möglicherweise weitere Pakete zum Filter hinzufügen.

Spezifische Schritte: 1. Aktivieren Sie die Schrittfilterung. Klicken Sie oben in der Symbolleiste auf die Schaltfläche: http://i57.tinypic.com/x3iccp.png 2. Gehen Sie zu Fenster -> Einstellungen und wählen Sie im Dialogfeld Einstellungen Java -> Debug- aus. -> Schrittfilterung 3. Wählen Sie alle Pakete aus. 4. Um weitere Filter hinzuzufügen, klicken Sie auf "Filter hinzufügen", geben Sie den Namen des Pakets mit einem. * Am Ende ein und klicken Sie auf OK. Murach empfiehlt, zunächst diese allgemeinen Pakete hinzuzufügen: --android. * --Com.android. * --Com.google. * --Dalvik. * --Libcore. * --Org.apache. * So fügen Sie eines hinzu Klicken Sie in diesen Paketen auf "Filter hinzufügen", geben Sie "android. *" ein und klicken Sie auf "OK". Am Ende hatte ich alle folgenden Pakete in meinen Schrittfiltereinstellungen.

Android. , Android App. , com.android. , com.google. com.ibm. , com.sun. , Dalvik. , Java. , Javax. , jrockit. , libcore. org.apache. org.omg. , Sonne. , sunw. *, ((und diese letzte ist eine Klasse, kein Paket)) java.lang.ClassLoader

Ich habe oben im Dialogfeld "Schrittfilter verwenden" und unten "Filter durchgehen" aktiviert. Klicken Sie auf "Übernehmen" und dann auf "OK", um den Dialog zu schließen. Es sollte funktionieren.

Viel Glück!


Ich fand das hilfreich. Ich habe auch hinzugefügt: --com.paypal. * --Com.samsung.android. * Und ich finde immer noch mehr hinzuzufügen. Sobald ich alle von Kate verwendeten und die beiden oben genannten hinzugefügt habe, komme ich weiter in den Prozess hinein, bevor ich die SOURCE NOT FOUND erreiche. ~~ Interessanter Punkt ~~ Ich bleibe nur beim Debuggen bei diesen "Quelle nicht gefunden" -Problemen hängen, nicht während eines regulären Laufs. Meine App hat eine FATAL EXCEPTION weiter in der Ausführung. Ich denke also, dass die Fehler SOURCE NOT FOUND möglicherweise nicht meine FATAL EXCEPTIONS verursachen. Ich könnte falsch liegen.
Sandi Laufenberg-Deku

0

Ich habe appengine sdk und einige andere Quellen hinzugefügt, und das hat mein ADT zerstört :-(

Ich habe gesehen, dass für Android-16 und Android-17 die vom SDK Manager heruntergeladenen Plattformbibliotheken auf ./sdk/sources verschoben wurden, während SDK Manager vor dem Hinzufügen von appenginge sdk Plattformen an ./sdk/platforms gesendet hat.

Es sieht so aus, als ob die Änderung auf das Appengine SDK zurückzuführen ist, aber für ADT sollten Plattform-APIs auf jeden Fall auf ./sdk/platforms gehen

Der Pfad ./sdk/sources scheint ein allgemeinerer Java-Speicherort zu sein und ist wahrscheinlich der 'richtige' Pfad. Somit ist Android wie immer das Problem. Ich war mir ziemlich sicher, dass ich von diesem Punkt an sowohl ./sdk/sources als auch ./sdk/platforms benötigen würde, je nachdem, was ich kompilierte.

Also habe ich alles von ./sdk/sources nach ./sdk/platform verschoben, ./sdk/sources gelöscht und dann einen Link 'cd sdk && ln -s Plattformquellen' erstellt.

Alles funktioniert jetzt ;-)


0

Für mich war die einzige Lösung, die funktionierte, die Antwort von fsbmain . Ein großes Lob an ihn. Ich kann seine Lösung wegen meines schlechten Rufs nicht kommentieren. Aber ich möchte mein Wissen teilen;)

Ich arbeite an Windows und wollte nicht den gesamten Quellbaum an einen anderen Speicherort kopieren. Und bei Updates usw. erneut kopieren. Also habe ich die Möglichkeit genutzt, einen symbolischen Link einzufügen, der seit Windows Vista wie ein Zauber (oder wie Linux) funktioniert. Für Linux muss man sich den Kommentar von Joe unter der Antwort von fsbmain ansehen.

Angenommen, Sie haben die Plattform in D: \ sdk \ platform \ android-19 . Nun müssen Sie ein Unterverzeichnis machen Quellen und nach , die einen relativen Link zu den realen Quellen Ordner erstellen.

D:\sdk\platforms\android-19>mkdir sources
D:\sdk\platforms\android-19>cd sources
D:\sdk\platforms\android-19\sources>mklink /D android-19 ..\..\..\sources\android-19

Starten Sie jetzt Eclipse neu ... Fertig!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.