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

Android Studio and android.support.v4.app.Fragment: cannot resolve symbol


问题

我正在尝试使用 Android Studio 而不是 Eclipse。我安装了它,然后开始一个全新的项目,按照向导操作。我没有添加自己的代码。

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

enter image description here

并选择一个新的片段:

enter image description here

一旦我这样做,我就看到了编译错误:

enter image description here

......所以我开始上网搜索,发现 我需要安装并引用支持库4 ,我也这样做了。当我检查build.gradle(不管那是什么,对我来说是来自Eclipse的新东西)时,我看到。

enter image description here

,但我把它改为

enter image description here

,因为他们说 这里 。在重新编译和所有这些之后,错误仍然存在。然后我直接引用.jar文件,像这样:

enter image description here

,并再次进行重新编译等,但这也没有帮助。

这种行为对我来说非常奇怪。我在这里错过了什么?这是SDK管理器的视图。

enter image description here

不要发布代码、数据、错误信息等的图片 - 将文本复制或输入问题中。 如何提问
答案1

没有成功:

我的build.gradle中已经有了以下的依赖关系

implementation 'com.android.support:support-v13:26.0.2'

我已经尝试了以下所有方法,

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

但是,这些方法对我都不起作用。

解决方案:

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

这有助于 "最后,我通过删除"/.idea/libraries "解决了这个问题"
在Android Studio 3.1.3中工作得非常顺利
这应该是公认的答案。我在Android Studio 3.1.4上遇到了同样的问题,这是唯一有效的方法。
最后一句话让我省了不少事。
删除 /.idea/libraries ,然后同步,对我来说也解决了这个问题。
答案2

这个问题的症状通常是,在命令行中构建工作正常(这意味着你的 build.gradle 文件设置正确),但在IDE中出现语法高亮错误。按照以下步骤解决这个问题:从通常位于IDE顶部的工具栏上点击 工具 ,然后导航到 Android ,然后导航到 与Gradle文件同步项目 按钮。我们意识到,IDE不能自己照顾自己,而不是强迫你在正确的时间手动同步,这是不太理想的;我们正在跟踪这方面的进展,在 https://code.google.com/p/android/issues/detail?id=63151

中 ...不要与 "同步 "选项相混淆,这个选项对我来说两次都不起作用。 ;)
在我的情况下,这并不能解决语法高亮的问题。我也试过许多人建议的无效缓存/重启选项和其他一些方法,但都是徒劳的。 我把细节放在另一个主题中:见 s tackoverflow.com/a/32475754/3804695
这是在工具条的 Tools/Android 目录中。
Tools/Android不存在... 它改变了吗?
这个答案已经过时了,去看看 "Owen Chen "的第二个答案
答案3

试试这个可能会对你有帮助。进入 "文件"-> "无效缓存...",并选择 "无效并重新启动 "选项来解决这个问题。

所有其他的建议都对我没有帮助,只有这个建议解决了我的问题,似乎IntelliJ有时会与缓存不同步,重新同步Gradle构建并不能解决这个问题!
答案4

替换这行代码

import android.support.v4.app.FragmentActivity;

改为

import androidx.fragment.app.FragmentActivity;

,你就完成了。

大多数答案都是2013-18年的,这是最新的答案,对我来说很有效。
答案5

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

确保你已经更新到了最新版本 安卓支持库 - 3 安卓支持库--19

如你上面的附件图片,你已经做了。然后在你的build.gradle中加入以下设置

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

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

答案6

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

对我有用。

答案7

enter image description here 我找到了一个捷径。 文件 - 项目结构 - 标签:依赖性 点击绿色的+号,选择support-v4(或其他你需要的),点击OK。

现在去看你的gradle文件,发现已经被添加了

答案8

1> 文件-> 使缓存失效 2> 建立-> 重建

它对我的工作

答案9

我在使用buck,似乎通过删除你项目文件夹中的 /.idea/libraries ,然后再次同步gradle对我有用。

正确。无效缓存,然后删除 .idea/libraries ,然后Gradle Sync。
答案10

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

无法解决符号'fragmentactivity'。 而且我在AndroidStudio编辑器中看到与fragmentactivity有关的红色高亮项目。

解决方案是简单地进行

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

我只提到这一点,以便其他人可以看到它并知道它正在发生。

答案11

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

  1. 点击文件,然后选择项目结构
  2. 选择模块 "app"
  3. 点击 "依赖 "标签
  4. 点击+号,选择库依赖
  5. 根据需要选择support-v4或其他库,点击确定

仅供参考 检查链接 s Tackoverflow.com/a/33414287/1280397

答案12

2021年在这里 -- 如果你像我一样,不幸地不得不让一些新的代码与遗留的垃圾一起工作,而这些垃圾已经有五年多没有被碰过了,并且仍然使用支持库,而且不能在截止日期前改变,你可以试着看看gradle.properties中的。

android.useAndroidX=true
android.enableJetifier=true

,如果有的话,就对它们进行注释。 Android Studio 4.1.2默认将它们插入新项目中,它们似乎妨碍了支持库的使用。 考虑到这些名字并不奇怪,但它们被自动添加到新项目中的事实有点令人厌恶。

谢谢你,我用这个方案解决了我的问题。
答案13

对我来说:Build->清洁项目解决了这个问题

答案14

文件 -> "无效缓存/重新启动" 这对我来说很有效。

答案15

嗯... 到目前为止,我不知道这已经发生了多少次。 我测试,尝试,谷歌,再测试,弄了几个小时,当我最终放弃时,我去我信任的Stackoverflow,写了一个详细而清晰的问题。

当我发布问题后,切换到IDE,轰--错误消失。

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

在build.gradle中,它现在说:

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

最初没有工作,编译错误也没有消失。似乎过了30分钟,IDE才明白......嗯......

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

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

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

答案16

要把这个问题的 "魔力 "淡化一点。在你做了这些改变之后,你需要一个互联网连接。如果由于某种原因无法下载所需的库,你将会得到一个适当的消息(如 "取库失败"),而不是得到同样的构建错误。 在意识到我公司的VPN屏蔽了该软件之前,我在这个问题上纠结了一个小时。

答案17

对于每一个来到这个主题并使用maven构建的人。 添加support-v4依赖,并构建下载repo。

然后把库手动添加到你的项目中:

项目结构 -> 库 -> 添加

然后移动到你的 repo 中获取正确的 jar 文件。 C:\Users\XXXXXXX\.m2\repository\com\google\android\support-v4\r7\support-v4-r7.jar

答案18

在app级别的build.gradle上做一些修改(只是为了gradle sync),并进行同步。再次,重做你在build.gradle和sync中的改动。它应该能解决你的问题。

答案19

我也面临同样的问题。结果在我的 build.gradle 文件中,有这样一个:

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

删除了这个,我的问题就解决了。所以,伙计们,如果做了这些,你的问题仍然没有得到解决,请在你的gradle文件中寻找任何 排除 的关键字。

答案20

我遇到了这个问题,尝试了所有的方法,包括 File > Invalidate Caches ,但都没有成功。这个问题之所以发生在我身上,是因为我有一些外部项目使用的AppCompat版本与我的主gradle文件不同。

在我更新了所有的gradle文件为同一版本后,编译错误消失了。

答案21

关闭和重新导入项目对我来说是有效的。

答案22

对我来说,问题的原因是类的路径被破坏:

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有帮助。

答案23

我发现,如果你的build.gradle中有注释,当你试图添加一个新的支持库时,可能会中断。所以请确保你检查你的build.gradle,看看它看起来是否正常。

答案24

我目前正在使用Android Studio Arctic Fox | 2020.3.1 Patch 3。我已经试过了这里投票最多的答案,但遗憾的是没有一个对我有用。我查看了我的".idea/libraries "文件夹,没有看到 "Fragments "的gradle文件。

我是这样解决的:

我进入File > Project Structure > Dependencies > 。那里有一个小的 "+",用来添加依赖(或者做Alt+Insert)>库依赖。在步骤1的搜索框中输入以下内容。'androidx.fragment'然后点击搜索。下面会显示一个库的列表,去点击第一个,然后完成。窗口会消失,然后点击Apply。它将获取Gradle Build模型,然后自动重建/更新你的项目。

如果你有新的问题,请点击 提问 按钮来提问。如果有助于提供背景信息,请包括这个问题的链接。- 来自评论
@ChristophE 对不起,我忘了说,这其实是我做的修复。