无法解决符号'support'(使用Android Studio,遵循入门指南)

8
我正在开始学习Android开发。 我已经按照这个入门指南并使用了Android Studio(不是eclipse)。
我在我的设备上运行了Hello World,一切都很好。但是……
当添加以下导入时问题就开始了:(按照指南的说明)
import android.support.v4.app.NavUtils;  // cannot resolve symbol 'support'

看起来这一行需要它(注释掉并自动解决导入问题没有起作用)。

NavUtils.navigateUpFromSameTask(this);

支持导入被红色下划线标记,悬停时提示“无法解析符号'support'”。当然,构建也不起作用。我已经看到了类似问题的答案,例如建议清除缓存和重新启动(已尝试)、建议以管理员身份运行SDK Manager并更新(已尝试),以及一些其他问题/解决方案,似乎是特定于Eclipse的。我对Android开发和IDE都很新,请问如何在Android Studio v0.2.9中修复这个问题?编辑:我的build.gradle文件内容
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16
    }
}

dependencies {

    // You must install or update the Support Repository through the SDK manager to use this dependency.
    // The Support Repository (separate from the corresponding library) can be found in the Extras category.
    // compile 'com.android.support:appcompat-v7:18.0.0'
}

首先我建议更新到最新版本(0.3.1)。让我知道进展如何。 - Adam Johns
1
你是否已安装支持库?你能否发布你的 build.gradle 文件? - redGREENblue
1
请发布您的build.gradle文件,并检查是否已从SDK Manager安装了支持库。 - fasteque
@redGREENblue 我已添加build.gradle文件的内容。 - Barry Staes
似乎我无法编辑评论,所以...@fasteque 我添加了build.gradle文件的内容,并且在SDK Manager中安装了“Extras/Android Support Library”(并更新)。@Adam-Johns 早期访问计划是否稳定到足以用于生产开发?我不能承受因IDE错误或损坏的项目文件而浪费时间。我现在正在使用里程碑版本(曾称为Dev Channel?)。 - Barry Staes
3个回答

15

请按以下方式修改您的gradle文件并尝试是否有效。

......

    dependencies {
       compile 'com.android.support:support-v4:18.0.0'

        // You must install or update the Support Repository through the SDK manager to use this dependency.
        // The Support Repository (separate from the corresponding library) can be found in the Extras category.
        // compile 'com.android.support:appcompat-v7:18.0.0'
    }

谢谢!这解决了问题。仅取消注释v7行会导致R.出现问题。你能告诉我为什么这个有效而另一个无效吗?v7是什么意思,是版本号吗?为什么gradle文件提到v7而不是v4?在使用import时是否更容易出现此类问题?或者这是故意的设计?我如何在将来自己进行故障排除? - Barry Staes
1
它们都是具有不同功能支持的不同支持库。V4适用于API级别4+,而V7适用于API级别7+。我建议您通过此链接了解更多详细信息http://developer.android.com/tools/support-library/features.html - redGREENblue
我之前在IDE中收到了关于R.string.foobar的警告,但我已经在strings_foobar.xml中正确定义了它,尽管构建工作正常。在我升级到最新的Android Studio(通过Early Access Preview获得的0.3.1版本)后,进行了缓存重建和重新启动,问题得以解决。 - Barry Staes
我遇到了同样的问题,但是我似乎找不到这个 build.gradle 文件,我正在使用 IntelliJ IDEA 13.1.1。 - Shairyar
我将其与我的buildToolsVersion对齐 - 看起来是个好主意。 - Ghoti

8
使用Android Studio的GUI修复问题,而不是直接编辑Gradle文件(已验证适用于Android Studio v1.0.1到v2.2.3):
  1. 在项目树中右键单击模块。它通常是根节点中的第一个节点,默认情况下称为app

  2. 在菜单中选择打开模块设置

    enter image description here

  3. 切换到依赖项选项卡。

  4. 点击对话框窗口底部的添加按钮(+)。

  5. 选择库依赖项

  6. 从列表中选择support-v4

  7. 点击确定并重新构建。


6

不需要编辑build.gradle文件,可以使用Maven的方式。右键点击根项目,选择“打开模块设置”,进入“依赖”选项卡,点击“+”号,选择“Maven依赖项”,搜索“NavUtils”,并选择com.google.android:support-v4:r7@jar

适用于SDK版本19和Android Studio 0.4.2。


1
此外,在 SDK 管理器中,您需要安装这两个文件:“Android 支持存储库”和“Android 支持库”(它们位于“Extras”类别下)。 - Daniel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接