Android Studio: come collegare sorgenti SDK Android?


111

Come posso allegare sorgenti SDK Android ad Android Studio?

Quando apro una delle classi Android, la finestra "Sorgenti non trovate" con l'opzione "Allega sorgenti" non viene visualizzata.

Qual è l'altro modo per farlo?

Risposte:


66

Apri il tuo sdk manager dai menu della barra degli strumenti e scarica "Sources for Android SDK" per il livello API definito nel tuo file build.gradle come

compileSdkVersion 19 // compile with API level 19

Nient'altro deve essere fatto.

Nota: le sorgenti per SDK sono disponibili solo per i livelli API 14 e superiori.

AGGIORNAMENTO (Basato sulla versione stabile 3.2.1):

Google cambia l'approccio alla spedizione delle fonti, quindi vediamo cosa è cambiato.

Vai al seguente percorso

Preferences -> Apperance & Behaviour -> System Settings -> Android SDK

Abbastanza pigro per navigare SDKnel tipo di ricerca e studio ti aiuterà a portarti nel posto giusto.

inserisci qui la descrizione dell'immagine

Puoi leggere la descrizione, dice principalmente cosa fare. Quindi dopo aver cliccato su "mostra i dettagli del pacchetto" vedrai se i sorgenti sono installati o meno (come mostrato nell'immagine sotto) se non è installato installa e sei a posto.

inserisci qui la descrizione dell'immagine


1
@takumar, questo perché l'origine dell'SDK non è attualmente disponibile per l'API Android 20. Sono sicuro che quando Android "L" uscirà dall'anteprima, la fonte sarà disponibile nel gestore dell'SDK.
Dick Lucas,

37
Dopo aver scaricato i sorgenti avevo bisogno di riavviare Android Studio per farlo funzionare
Sathesh

3
Se stai eseguendo il debug su una versione precedente rispetto a compileSdkVersion, il codice sorgente non corrisponderà.
David,

Aggiungerei il commento di Sathesh alla soluzione. Sembra che molti abbiano dovuto ricominciare, anche io.
Ferran Maylinch

Devi spuntare la casella "Mostra dettagli pacchetto" per trovare la voce "Sorgenti per Android ..."
Flimm

247

Reporting di Android Studio 3.2.1 in: risolto il problema reimpostando l'SDK.

Preferenze -> Aspetto e comportamento -> Impostazioni di sistema -> SDK Android.

Fare clic su Modifica a destra della posizione dell'SDK Android. Avanti, Avanti, Fine per completare la procedura guidata e voilà!


3
@ 0xF File / Impostazioni per Windows (Linux?), Preferenze per Mac. Aspetto e comportamento aggiunti, grazie mille. Mi è mancato completamente.
Alexander Mayatsky

1
@AlexanderMayatsky File / Settings è su Linux.
0xF

2
su Linux è:File -> Settings -> Appearance&Behavior -> System Settings -> Android SDK
lenooh

2
Ho riscontrato lo stesso problema in cui la documentazione non veniva visualizzata. Questo lo ha risolto per l'ultima versione stabile che è 3.1.4.
ChallengeAccepted

Questo non funziona per me. Ho scaricato i sorgenti per compileSdkVersion 28 e il mio build.gradle ha anche targetSdkVersion 28, e quando eseguo la mia app nel debugger posso vedere ogni sorta di cose come art::ArtMethod::Invokee StartBackgroundThread(questo è per un thread helper JNI nella mia app) ma facendo clic su qualsiasi cosa nella parte Android dello stack non viene visualizzato il file sorgente associato. Cosa mi sto perdendo?
kbro

32

Non riesco a trovare le suddette opzioni gui in v8.11 su osx, tuttavia grep-fu mi dice:

config è memorizzato in ~ / Library / Preferences / AndroidStudioBeta / options / jdk.table.xml

Dopo aver modificato questo file (con Studio interrotto) e aver riavviato la mappatura della sorgente funziona bene per me.

diff --git a/options/jdk.table.xml b/options/jdk.table.xml
index 0112b91..33828b8 100644
--- a/options/jdk.table.xml
+++ b/options/jdk.table.xml
@@ -76,7 +76,7 @@
         </javadocPath>
         <sourcePath>
           <root type="composite">
-            <root type="simple" url="file:///Applications/Android Studio.app/sdk/sources/android-19" />
+            <root type="simple" url="file:///Users/tehdawgz/dev/android-sdk/sources/android-19" />
           </root>
         </sourcePath>
       </roots>

AndroidStudio 2.1.2 qui su Mac OS. Per me ha funzionato: <root type="simple" url="file://$USER_HOME$/Library/Android/sdk/sources/android-23" />
G. Steigert il

1
Ha funzionato per me. Ubuntu 14.04 / Android Studio 2.2. Ho usato "locate jdk.table.xml" che nel mio caso era in ~ / .AndroidStudio2.2 / config / options / jdk.table.xml. È interessante notare che a un certo punto di questo processo qualcosa ha sostituito i miei percorsi assoluti con "file: // $ USER_HOME $ ..." ?? In ogni caso, le cose hanno iniziato a funzionare dopo aver corretto il file.
Steven Smith il

16

Per me il 29/08/2016 con Android Studio 2.1.3:

Avevo scaricato e stavo compilando contro api 24 prima che i sorgenti fossero rilasciati. Voglio indicare la fonte ora che sono stati rilasciati. Il riavvio di Android Studio dopo aver scaricato i sorgenti nel gestore SDK non funzionava.

Ho dovuto comportarmi come se stessi per modificare la posizione dell'SDK in SDK Manager, quando l'ho fatto, potevo semplicemente fare clic su "Avanti" nella finestra di dialogo e reindicizzare automaticamente le cose sdk.

pulsante per modificare la posizione dell'SDK dove fare semplicemente clic su Avanti


7

La soluzione di gdawg ha funzionato anche per me in Windows 10 e Android Studio 2.0. Con la piccola modifica in cui si trova il file jdk.table.xml

C: \ Users \ {USER_NAME} \ AndroidStudio2.0 \ config \ opzioni \ jdk.table.xml.


5

Non sono sicuro del motivo per cui la risposta accettata sembra funzionare solo con il livello API 19. Sono stato in grado di allegare origini SDK per il livello API 15 fornendo esplicitamente il percorso di origine per l'SDK. Ecco cosa ho fatto:

  1. Assicurati di aver scaricato i sorgenti SDK desiderati e di aver configurato il mio build.gradle con il livello API desiderato.
  2. Nella finestra Progetto a sinistra, seleziona il menu a discesa Librerie esterne.
  3. Fare clic con il pulsante destro del mouse sulla voce di menu e selezionare Apri impostazioni libreria.
  4. Fare clic sulla scheda Sourcepath e utilizzare l'icona + in basso a sinistra per collegarsi alle origini SDK desiderate (dovrebbe essere in qualcosa / sdk / sources)

6
> Fare clic con il pulsante destro del mouse sulla voce di menu e selezionare Apri impostazioni libreria. - dove lo trovi?
kiruwka

1
Sembra che questa voce di menu non sia più disponibile. Ci sono modi per farlo in InteliJ normale.
David

3

In Android Studio 0.8.6 (Beta) (OSX 10.9.4), sembra che sia possibile visualizzare il codice sorgente di Android direttamente senza collegare manualmente le Sorgenti.

Il prerequisito è scaricare "Sources for Android SDK" in "SDK Manager" e riavviare "Android Studio"


1

Segui questi passaggi: Impostazioni -> Android SDK -> Avvia Standalone SDK Manager -> scarica i sorgenti SDK necessari (in ogni versione di Anroid Sources for Android SDK) -> riavvia il tuo Android Studio. Se sopra non aiuta, assicurati di aver scaricato le sorgenti SDK richieste e reimposta il file Android SDK Locationper aggiornare. Spero possa essere d'aiuto.


0

Non sapevo a quale menu si riferisse il passaggio 3 della risposta di sfridman. Un altro modo in cui sono riuscito ad arrivare alla fonte che mi interessava è stato dopo che Android Studio ha lanciato il .class in cui volevo immergermi:

Breadcrumb nel file .class

Potrei quindi fare clic con il pulsante destro del mouse su quel breadcrumb e scegliere "Jump to source":

inserisci qui la descrizione dell'immagine

Sembrava trovarlo automaticamente mentre lo faceva, probabilmente perché avevo installato il sorgente tramite il gestore di Android SDK come descritto altrove.


0

Innanzitutto, controlla di avere già caricato l'origine.

quindi reimposta la posizione dell'SDK Android su settings.

Ho risolto il mio problema con il metodo sopra.


0

L'unica cosa che ha funzionato per me è stata:

  • Apri Android SDK Manager (Strumenti -> Android -> SDK Manager -> Avvia Standalone SDK Manager)
  • disinstallare tutta la piattaforma SDK e le sorgenti per Android SDK (da tutti i livelli API)
  • riavvia Android Studio

Al riavvio Android Studio aprirà una procedura guidata perché non è installato alcun SDK: installa la piattaforma SDK e le sorgenti per il livello API attualmente utilizzato.


0

In Android Studio 2.3.3 su Windows 7, ho avuto il problema che i file sorgente già scaricati per il livello API 26 nella cartella SDK\sources\android-26non venivano riconosciuti. L'utilizzo di "File | Invalida cache / Riavvia" ha risolto il problema per me.


0

Per me scaricare e aggiornare non è stato d'aiuto. Ho provato a scegliere la fonte ma ancora lo stesso problema. Così ho fatto Invalidate Cache / Restart. Ora funziona.

Ho provato a modificare il file jdk.table.xml ma non c'era alcuna voce per android-26, era solo fino a android-25, quindi ho deciso di non modificare quel file.


0

Per quanto riguarda il 09/08/2019 sono disponibili tali fonti

sources;android-15
    Description:        Sources for Android 15
    Version:            2

sources;android-16
    Description:        Sources for Android 16
    Version:            2

sources;android-17
    Description:        Sources for Android 17
    Version:            1

sources;android-18
    Description:        Sources for Android 18
    Version:            1

sources;android-19
    Description:        Sources for Android 19
    Version:            2

sources;android-20
    Description:        Sources for Android 20
    Version:            1

sources;android-21
    Description:        Sources for Android 21
    Version:            1

sources;android-22
    Description:        Sources for Android 22
    Version:            1

sources;android-23
    Description:        Sources for Android 23
    Version:            1

sources;android-24
    Description:        Sources for Android 24
    Version:            1

sources;android-25
    Description:        Sources for Android 25
    Version:            1

sources;android-26
    Description:        Sources for Android 26
    Version:            1

sources;android-27
    Description:        Sources for Android 27
    Version:            1

sources;android-28
    Description:        Sources for Android 28
    Version:            1

Puoi elencarli per ./pathtoandroidsdk/tools/bin/sdkmanager --list --verbose --no_https

Ad esempio, installa da ./pathtoandroidsdk/tools/bin/sdkmanager "sources;android-28"

Non è necessario in Android Studio per il download

Istruzioni di installazione in Android Studio

Nell'app build.gradleimpostare la versione corretta di sdk che includerà le sorgenti desiderate

android {
    compileSdkVersion 28
    ...

Per applicare le modifiche, riavvia IDE


0

Ho appena incontrato un problema simile quando ho bisogno di scaricare la piattaforma Android 28 tramite riga di comando, ho visto la risposta per eseguire il comando ./pathtoandroidsdk/tools/bin/sdkmanager "sources;android-28".

Ma in realtà, da developer.android.com , mostra un esempio come sdkmanager "platform-tools" "platforms;android-28", quindi immagino che dovrebbe essere ./pathToAndroidSdk/tools/bin/sdkmanager "platforms;android-28".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.