2012-07-16 76 views
6

最近我發現我的Android SDK源代碼不完整。我只從SDK Manager下載了Android SDK API 16。當我想從源代碼生成javadoc時,它會警告我找不到一些類。我已經閱讀了下面的網站,但是我很困惑更高層的API是否包含較低層的API。僅僅安裝最高的API是否足夠?或者做一些Android SDK源碼依賴於JDK源代碼?非常感謝。爲什麼我的Android SDK源代碼不完整?

Android API leve help

一塊的Javadoc警告:

./java/lang/String.java:31:警告:包libcore.util不存在

進口libcore.util.EmptyArray;

+1

我有一個類似的問題,其中SDK代碼(我使用SDK管理器)引用了特定的字符串,但沒有包含相關的strings.xml,我非常沮喪地試圖找到它無濟於事 - 但是我確實在完整的SDK中找到了它! https://source.android.com/source/downloading.html – 2016-01-01 14:12:56

回答

2

據我所知,SDK將只包含來自frameworks/base的源代碼。由於libcore不在此處(它位於源代碼樹的根目錄),因此您會收到此錯誤。

+0

「junit.runner.BaseTestRunner」如何?它會導入「junit.framework.AssertionFailedError」,但我無法在源文件夾中的「junit」文件夾中找到「框架」文件夾。如果您僅安裝SDK API 16,則可以檢查它。謝謝。 – fish47 2012-07-16 12:49:45

+0

AssertionFailedError實際上來自AOSP_root/dalvik/dx/src/junit/framework /而不是來自sdk的源代碼。 SDK來源不是完整的來源。它只是在編譯時才起作用,因爲我們將android.jar作爲項目中的庫。您可以打開android.jar並查看junit/framework/AssertionFailedError.class。 – 2012-07-17 05:44:34

+0

感謝您的耐心回覆。但如果我真的想獲得完整的SDK源代碼(Java),我應該去Android項目和git克隆它?爲什麼官方SDK Manager沒有爲開發人員提供完整的源代碼?這很奇怪,對吧? – fish47 2012-07-21 06:01:33