【问题标题】:Sources for Android API 23 Platform not found (Android Studio 2.0)未找到 Android API 23 平台的源 (Android Studio 2.0)
【发布时间】:2016-08-17 07:40:58
【问题描述】:

Android Studio 没有正确地将我重定向到 API 源。当我点击任何函数时,它会反编译 .class 文件字节码,而不是从 sdk/sources 树访问正确的文件。 点击“下载”和“刷新”选项无济于事。实现侦听器特别烦人,因为它从文档(即 var1、var2 等)生成没有变量鬃毛的函数标题。我已经安装了 API 23(SDK 平台、工具、文档、源代码)。我已将编译和目标 SDK 设置为 23。 我尝试重新安装 SDK 工具,从金丝雀频道更新 AS,使缓存无效,但到目前为止没有任何帮助。 我切换到 API 21,它工作正常。

我错过了什么?

我的 build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'

    defaultConfig {
        applicationId "com.myapp.app"
        minSdkVersion 10
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.android.support:design:23.3.0'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile project(':volley')
    compile 'com.jakewharton:butterknife:7.0.1'
}

您可以在下面找到具有相同 API 23 集和相同行为的空白项目(没有第 3 方库)的 gradle 输出。

Executing tasks: [clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies]

Configuration on demand is an incubating feature.
Incremental java compilation is an incubating feature.
:clean
:app:clean
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAnimatedVectorDrawable2330Library
:app:prepareComAndroidSupportAppcompatV72330Library
:app:prepareComAndroidSupportDesign2330Library
:app:prepareComAndroidSupportRecyclerviewV72330Library
:app:prepareComAndroidSupportSupportV42330Library
:app:prepareComAndroidSupportSupportVectorDrawable2330Library
:app:prepareDebugDependencies
:app:compileDebugAidl
:app:compileDebugRenderscript
:app:generateDebugBuildConfig
:app:mergeDebugShaders
:app:compileDebugShaders
:app:generateDebugAssets
:app:mergeDebugAssets
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources
:app:mergeDebugResources
:app:processDebugManifest
:app:processDebugResources
:app:generateDebugSources
:app:preDebugAndroidTestBuild UP-TO-DATE
:app:prepareDebugAndroidTestDependencies
:app:compileDebugAndroidTestAidl
:app:processDebugAndroidTestManifest
:app:compileDebugAndroidTestRenderscript
:app:generateDebugAndroidTestBuildConfig
:app:mergeDebugAndroidTestShaders
:app:compileDebugAndroidTestShaders
:app:generateDebugAndroidTestAssets
:app:mergeDebugAndroidTestAssets
:app:generateDebugAndroidTestResValues UP-TO-DATE
:app:generateDebugAndroidTestResources
:app:mergeDebugAndroidTestResources
:app:processDebugAndroidTestResources
:app:generateDebugAndroidTestSources
:app:mockableAndroidJar
:app:preDebugUnitTestBuild UP-TO-DATE
:app:prepareDebugUnitTestDependencies

BUILD SUCCESSFUL

【问题讨论】:

  • 请出示你的 gradle 文件
  • 我附上了我的 build.gradle。感谢回复
  • 你在 Linux 上使用它吗?
  • 我也面临同样的问题

标签: android-studio android-api-levels


【解决方案1】:

显然,这个问题已在 Android Studio 2.1 中得到修复。 在 Android Studio 中重新运行 Android SDK Manager 设置,这应该可以解决您的问题。

在 Android Studio 中:

Windows:文件 -> 设置 (ctrl+alt+s) -> 外观和行为 -> 系统设置 -> Android SDK。

Mac:Android Studio -> Preferences (cmd + ,) -> Appearance & Behavior -> System Settings -> Android SDK.

点击 Android SDK 位置右侧的编辑。 在向导中一直单击下一步,这应该可以解决问题。

这是here 的另一个问题的回答。

【讨论】:

  • 重启使其生效。
  • 太棒了!你是冠军。重新导入为我解决了这个问题。
  • 你愿意嫁给我吗?
  • 任何人都可以使用 Android Studio 2.3.3 和 API 26?在这种情况下问题完全相同,但按照这些说明重新启动并没有帮助。
  • 仍然与 AS 3.1.3 相关。谢谢!
【解决方案2】:

对于面临同样问题的人,解决方案在this post(适用于 Linux)和同一主题 here(适用于 Windows)中(感谢 Aamir Abro)。基本上,您必须为您缺少的 API 级别编辑 jdk.table.xml 文件。我不知道为什么,但Android 2.0 和2.1 RC 没有在<sourcePath> 中填充<root type="composite" />。我更新了源路径<root type="simple" url="file://D:/android/sdk/sources/android-23" />,现在它可以工作了。

对于 Windows 用户 file locationC:\Users{USER_NAME}.AndroidStudio2.0\config\options\jdk.table.xml

对于 Linux 用户 file location~/Library/Preferences/AndroidStudioBeta/options/jdk.table.xml

编辑:

对于某些人来说,重置 SDK 位置有助于source

【讨论】:

  • 我试过了,但这不适用于 Android Studio 2.1、Ubuntu 16.04
  • 有人 here 写道重置 SDK 位置有帮助。您也可以尝试在 SDK 管理器中重新安装 API 源,并确保 jdk.table.xml 具有指向您正在使用的 API 级别的正确路径的条目。
  • 重置SDK位置确实有帮助,即使我没有修改jdk.table.xml。
  • 对于 Mac 用户是一样的:~/Library/Preferences/AndroidStudioBeta/options/jdk.table.xml
【解决方案3】:

正如qbeck 在他的评论中提到的,重置 SDK 的路径为我们中的一些人解决了这个问题。

Solution:

Android Studio 2.1 报告:通过重置 SDK 解决了该问题。

首选项 -> 外观和行为 -> 系统设置 -> Android SDK。

点击 Android SDK 位置右侧的编辑。下一个,下一个,下一个 完成向导,瞧!

【讨论】:

  • 这解决了 Android Studio 2.3 w/ SDK 25 中的问题
  • 在 Linux 上是:File -> Settings -> Appearance&Behavior -> System Settings -> Android SDK
【解决方案4】:

在 Windows 10 上的 Android Studio 3.2.1 上的 API 级别 28 遇到了同样的问题。刷新不起作用。

重启 Android Studio 后工作正常。

【讨论】:

    【解决方案5】:

    要将您的 Android Studio 更新到 Api 23,请访问:

    Tools > Android > SDK Manager,

    您可以转到SDK Tools 选项卡或单击Launch Sdandalone SDK Manager。检查Android SDK Build-tools 23.0.2 安装

    更新:

    请从您的依赖项中删除:

    compile project(':volley')
    

    并将其替换为:

    compile 'com.android.volley:volley:1.0.0'
    

    【讨论】:

    • 我已经安装了 API 23(SDK 平台、工具、文档、源代码)。事实上,我试图重新安装所有这些,但没有帮助。
    • 好的,我认为问题与 volley 库有关。请查看我更新的答案
    • 还是什么都没有。我什至设置了一个没有任何外部的新项目,它仍然是一样的。看起来更像是与 Android Studio 相关的问题。
    • 嗯,请清理您的项目 => 重建并检查 android studio 右下角的 gradle 控制台。使用您看到的日志更新您的问题
    • 我为另一个(空白)项目附加了 gradle 的输出,在那里发生了同样的事情。感谢您的帮助。
    【解决方案6】:

    有时会出现2个错误,第一个会说:'platform android 28 not found',点击next,'accept some license agreement...'。一旦您接受协议,这两个错误都会消失。

    【讨论】:

      猜你喜欢
      • 2016-11-09
      • 1970-01-01
      • 2014-05-10
      • 2016-07-27
      • 2020-08-04
      • 2016-05-31
      • 1970-01-01
      • 1970-01-01
      • 2014-03-05
      相关资源
      最近更新 更多