Android Studio和android.support.v4.app.Fragment:无法解析符号

时间:2013-12-04 21:26:48

标签: android android-fragments android-studio

我正在试用Android Studio而不是Eclipse。我安装它然后启动一个全新的项目并按照向导。我没有添加自己的代码。

然后,我右键单击以创建一个新组件,一个新片段:

enter image description here

并选择一个新片段:

enter image description here

然后我一看到编译错误:

enter image description here

...所以我开始使用谷歌搜索I need to install and reference support library 4,我就这样做了。当我检查build.gradle(不管是什么,我来自Eclipse的新手)时,我看到了:

enter image description here

但我将其更改为

enter image description here

因为他们这么说here。重新编译之后,错误仍然存​​在。然后我直接引用.jar文件,如下所示:

enter image description here

再次重新编译yada yada,但这也没有帮助。

这种行为对我来说似乎很奇怪。我在这里错过了什么?这是SDK Manager视图:

enter image description here

那么,我错过了什么?谢谢=)

24 个答案:

答案 0 :(得分:104)

我的build.gradle

中已经有了以下依赖项
implementation 'com.android.support:support-v13:26.0.2'

我已经尝试了以下所有内容,

  • 使缓存无效/重新启动
  • 使用gradle文件同步项目
  • 清理项目
  • 重建项目
  • gradlew clean

但是,他们都没有为我工作。

最后,我通过删除" /。idea / libraries" 解决了这个问题,然后再与gradle同步并重新构建。

答案 1 :(得分:90)

此问题的症状通常是构建在命令行中正常工作(这意味着您的build.gradle文件设置正确)但您在IDE中获得语法突出显示错误。按照以下步骤解决问题:单击工具栏顶部的工具,然后导航到 Android ,然后导航到同步项目使用Gradle Files 按钮。我们意识到,IDE不能仅仅照顾好自己,而不是强迫你在合适的时间手动同步,这并不理想。我们正在跟踪https://code.google.com/p/android/issues/detail?id=63151

中的进展情况

答案 2 :(得分:43)

尝试这可能会对你有所帮助。转到"文件" - > "使高速缓存无效...",然后选择"无效并重新启动"修复此问题的选项。

答案 3 :(得分:9)

自从我更新到Android Studio 0.3.7的最新版本后,我遇到了同样的问题。所以你可以尝试我的东西。

确保您已更新至最新版本 Android支持存储库 - 3 Android支持库 - 19

作为上面的附件图片,您已经完成了。然后将以下设置添加到build.gradle

dependencies {
    compile 'com.android.support:support-v4:19.0.0'
}

还有一件事:请确保您的Android SDK定位到正确的SDK文件夹

答案 4 :(得分:7)

"文件" - > "使缓存无效......"

为我工作。

答案 5 :(得分:6)

enter image description here我找到了一条捷径: 文件 - 项目结构 - 选项卡:依赖项 单击绿色+符号,选择support-v4(或任何其他所需的),单击“确定”。

现在转到您的gradle文件,看看已添加

答案 6 :(得分:5)

1>档案 - >使缓存无效 2 - ;建设 - >重建

它为我工作

答案 7 :(得分:4)

我正在使用buck,似乎通过删除项目文件夹中的/.idea/libraries并重新同步gradle对我来说是可行的。

答案 8 :(得分:4)

我正在运行迄今为止最新版本的AndroidStudio(2015年10月11日) - v1.4(构建AI-141.2288178,建于2015年9月28日),我构建了我的项目,一切正常精细。然后在我的计算机处于非活动状态几个小时之后,我回来了,编辑了一些与支持库无关的代码并开始看到:

  

无法解析符号'片段活动'   我在AndroidStudio编辑器中看到了与片段活动相关的红色突出显示的项目。

解决方案是简单地做一个

  

构建......重建项目......

我只提到这个,所以其他人可能会看到它并知道它正在那里发生。

答案 9 :(得分:2)

这里是 2021 年——如果你像我一样,很遗憾地只需要一些新代码来处理五年以上没有接触过的遗留垃圾,并且仍然使用支持库并且在截止日期之前无法更改,您可以尝试查看 gradle.properties 中的:

android.useAndroidX=true
android.enableJetifier=true

并评论它们(如果存在)。默认情况下,Android Studio 4.1.2 将它们插入到新项目中,它们似乎妨碍了使用支持库。考虑到名称并不奇怪,但它们被自动添加到新项目的事实有点令人讨厌。

答案 10 :(得分:1)

对我来说:Build-> Clean Project解决了这个问题

答案 11 :(得分:1)

Android studio可以选择管理依赖项。按照路径。

  1. 单击“文件”,然后选择“项目结构”
  2. 选择模块“app”
  3. 点击“依赖关系”标签
  4. 单击+号,选择Library Dependencies
  5. 根据需要选择support-v4或其他库,然后单击“确定”
  6. 仅供参考检查链接 stackoverflow.com/a/33414287/1280397

答案 12 :(得分:1)

文件->“使缓存无效/重新启动” 这对我有用。

答案 13 :(得分:1)

Hrrm ...我不知道到目前为止发生了多少次: 我测试,尝试,谷歌,再次测试并乱搞几个小时,当我最终放弃时,我去了我信任的Stackoverflow并写了一个详细而明确的问题。

当我发布问题时,切换到IDE和繁荣 - 错误消失了。

我不能说为什么它消失了,因为我在代码中完全没有改变,除了我已经尝试过如上所述。但突然间,编译错误消失了!

在build.gradle中,现在说:

dependencies {
    compile "com.android.support:appcompat-v7:18.0.+"
}

最初没有用,编译错误没有消失。在IDE拿到它之前花了30分钟,似乎......嗯......

===编辑=== 当我再次查看build.gradle时,它现在已经改变,看起来像这样:

dependencies {
    compile 'com.android.support:support-v4:18.0.0'
    compile "com.android.support:appcompat-v7:18.0.+"
}

我真的不确定appcompat现在是什么。

答案 14 :(得分:0)

淡化"魔法"这个问题有点。进行这些更改后,您需要Internet连接。如果出于某种原因,不能通过下载来获取所需的库,而不是给出适当的消息(例如"无法获取库"),您将只会得到相同的构建错误。 在意识到我公司的VPN阻止了回购之前,我已经挣扎了一个小时。

答案 15 :(得分:0)

对于参与此主题并使用maven构建的所有人: 添加support-v4依赖项和build以下载repo。

然后将库manuelly添加到您的项目中:

项目结构 - >图书馆 - >添加

然后转到你的repo以获取正确的jar文件: C:\ Users \用户XXXXXXX \的.m2 \库\ COM \谷歌\机器人\支持-V4 \ R7 \支持-V4-r7.jar

答案 16 :(得分:0)

做某事。通过应用级build.gradle和sync进行修改(仅用于gradle sync)。再次,重做您在build.gradle和同步中更改的内容。它应该解决你的问题。

答案 17 :(得分:0)

我遇到了同样的问题。事实证明,在我的 build.gradle 文件中有这样的结果:

configurations {
    all*.exclude group: 'com.android.support'
}

删除修复我的问题。所以大家,如果这样做仍然没有解决您的问题,请在您的gradle文件中查找任何排除关键字。

答案 18 :(得分:0)

补充@daylight答案......

转到布局,如果您的布局没有显示,则会显示带

的消息
  

"提示: 构建 您的项目"

。所以建立你的项目,一切都会好的。

答案 19 :(得分:0)

我发现如果你在build.gradle中有注释,当你尝试添加一个新的支持库时,它可能会中断。因此,请确保检查build.gradle并查看它是否可以手动显示。

答案 20 :(得分:0)

我遇到了此问题,并尝试了所有操作,包括File> Invalidate Caches,但没有任何效果。对我来说,发生此问题的原因是因为我的外部项目正在使用与主要gradle文件不同的AppCompat版本。

将所有gradle文件更新为相同版本后,编译错误就消失了。

答案 21 :(得分:0)

关闭和重新导入项目对我有用。

答案 22 :(得分:0)

替换此行代码

import android.support.v4.app.FragmentActivity;

使用

import androidx.fragment.app.FragmentActivity;

您完成了。

答案 23 :(得分:0)

对我来说,造成问题的原因是类路径损坏:

Library Gradle: com.android.support:support-v4:28.0.0@aar has broken classes path:   
/Users/YOUR_USER/.gradle/caches/transforms-1/files-1.1/support-v4-28.0.0.aar/0f378acce70d3d38db494e7ae5aa6008/res

因此,仅删除transforms-1文件夹和进一步的Gradle Sync有所帮助。