Android Studio 和 android.support.v4.app.Fragment:无法解析符号
Posted
技术标签:
【中文标题】Android Studio 和 android.support.v4.app.Fragment:无法解析符号【英文标题】:Android Studio and android.support.v4.app.Fragment: cannot resolve symbol 【发布时间】:2013-12-21 14:04:56 【问题描述】:我正在尝试使用 android Studio 而不是 Eclipse。我安装它,然后开始一个全新的项目并按照向导进行操作。我没有添加自己的代码。
然后,我右键新建一个组件,一个新的Fragment:
并选择一个新片段:
一旦我这样做,我就会看到编译错误:
...所以我开始在谷歌上搜索并找出I need to install and reference support library 4,我确实做到了。当我检查 build.gradle(不管是什么,对我来说是来自 Eclipse 的新手)时,我看到:
但我将其更改为
因为他们这么说here。重新编译后,错误仍然存在。然后我直接引用 .jar 文件,如下所示:
然后再次重新编译等,但这也无济于事。
这种行为对我来说似乎很奇怪。我在这里想念什么?这是 SDK 管理器视图:
【问题讨论】:
为我工作:***.com/a/21100896/3209132 请勿发布代码、数据、错误消息等的图片 - 将文本复制或输入到问题中。 How To Ask 【参考方案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 顶部的工具栏中单击 Tools,然后导航到 Android,然后导航到 Sync Project使用 Gradle 文件 按钮。我们意识到 IDE 不能只顾自己而不是强迫您在正确的时间手动同步,这并不理想;我们正在https://code.google.com/p/android/issues/detail?id=63151
【讨论】:
...不要与“同步”选项混淆,这对我没有用两次。 ;) 这并不能解决我的语法高亮问题。我还尝试了许多人建议的 Invalidate Cache/Restart 选项以及其他一些方法,但都是徒劳的。我已将详细信息放在另一个线程中:请参阅***.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 后,我遇到了同样的问题。所以你可以试试我的东西。
确保您已更新到最新版本 Android 支持存储库 - 3 Android 支持库 - 19
正如你上面的附件图片,你已经做到了。然后将以下设置添加到您的 build.gradle
dependencies
compile 'com.android.support:support-v4:19.0.0'
还有一件事:请确保您的 Android SDK 定位到正确的 SDK 文件夹
【讨论】:
【参考方案6】:“文件”->“使缓存无效...”
为我工作。
【讨论】:
【参考方案7】:我找到了一条捷径: 文件 - 项目结构 - 选项卡:依赖项 点击绿色的+号,选择support-v4(或者其他你需要的),点击OK。
现在转到您的 gradle 文件并查看已添加
【讨论】:
【参考方案8】:我正在使用 buck,似乎通过删除项目文件夹中的 /.idea/libraries
并再次同步 gradle 对我有用。
【讨论】:
正确。使缓存失效,然后删除.idea/libraries
然后 Gradle Sync。【参考方案9】:
1> 文件 -> 使缓存无效 2> 构建-> 重建
它对我有用
【讨论】:
【参考方案10】:我正在运行迄今为止(2015 年 11 月 10 日)最新版本的 AndroidStudio——v1.4(构建 AI-141.2288178,构建于 2015 年 9 月 28 日)并且我构建了我的项目并且一切正常。然后在我的计算机处于非活动状态几个小时后,我回来编辑了一些与支持库无关的代码并开始查看:
无法解析符号“fragmentactivity” 我在 AndroidStudio 编辑器中看到与片段活动相关的红色突出显示的项目。
解决方案是简单地做一个
构建...重建项目...
我只是提到这一点,以便其他人看到它并知道它正在发生。
【讨论】:
【参考方案11】:Android Studio 可以选择管理依赖项。遵循路径。
-
点击文件,然后选择项目结构
选择模块“app”
点击“依赖”标签
点击+号,选择Library Dependencies
根据需要选择support-v4或其他库,点击确定
仅供参考检查链接 ***.com/a/33414287/1280397
【讨论】:
【参考方案12】:这里是 2021 年——如果您像我一样遗憾地只需要获取一些新代码来处理五年多未触及的旧垃圾并且仍然使用支持库并且在截止日期之前无法更改,您可以尝试在 gradle.properties 中查看:
android.useAndroidX=true
android.enableJetifier=true
并在存在时对其进行评论。 Android Studio 4.1.2 默认将它们插入到新项目中,它们似乎妨碍了使用支持库。考虑到这些名称并不奇怪,但它们会自动添加到新项目中这一事实有点令人讨厌。
【讨论】:
谢谢你,我用这个解决方案解决了我的问题。【参考方案13】:对我来说:Build->Clean Project 解决了这个问题
【讨论】:
【参考方案14】:文件->“使缓存无效/重新启动” 这对我有用。
【讨论】:
【参考方案15】:Hrrm...到目前为止,我不知道这种情况发生了多少次: 我测试、尝试、谷歌、再次测试并搞砸了几个小时,当我最终放弃时,我会去我信任的 *** 并写一个详细而清晰的问题。
当我发布问题时,切换到 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 现在是什么。
【讨论】:
【参考方案16】:稍微淡化这个问题的“魔力”。进行这些更改后,您需要 Internet 连接。如果由于某种原因无法下载所需的库,而不是给出适当的消息(如“无法获取库”),您只会得到相同的构建错误。 在意识到我公司的 *** 阻止了 repo 之前,我为此苦苦挣扎了一个小时。
【讨论】:
【参考方案17】:对于所有来到这个线程并使用 maven 构建的人: 添加 support-v4 依赖并构建以下载 repo。
然后手动将库添加到您的项目中:
项目结构 -> 库 -> 添加
然后转到正确的 jar 文件的仓库: C:\Users\XXXXXXX\.m2\repository\com\google\android\support-v4\r7\support-v4-r7.jar
【讨论】:
【参考方案18】:做某事。在应用程序级别 build.gradle 和同步上进行修改(仅用于 gradle 同步)。再次,重做您在 build.gradle 中更改的内容并同步。它应该可以解决您的问题。
【讨论】:
【参考方案19】:我遇到了同样的问题。事实证明,在我的 build.gradle 文件中有这样的内容:
configurations
all*.exclude group: 'com.android.support'
删除它解决了我的问题。所以,伙计们,如果做了所有这些但你的问题仍然没有解决,请在你的 gradle 文件中查找任何 exclude 关键字。
【讨论】:
【参考方案20】:我遇到了这个问题并尝试了所有方法,包括 File
> Invalidate Caches
但没有任何效果。这个问题发生在我身上的原因是我的外部项目使用了与我的主 gradle 文件不同的 AppCompat 版本。
在我将所有 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 中有 cmets,当您尝试添加新的支持库时,它可能会中断。因此,请务必检查您的 build.gradle 并手动查看它是否正常。
【讨论】:
【参考方案24】:我目前正在使用 Android Studio 北极狐 | 2020.3.1 补丁 3。我在这里尝试了最受好评的答案,但遗憾的是没有一个对我有用。我查看了我的“.idea/libraries”文件夹,并没有看到“片段”的 gradle 文件。
这是我修复它的方法:
我去 File > Project Structure > Dependencies > 。那里有一个小“+”来添加依赖项(或执行 Alt+Insert)> 库依赖项。在步骤 1 的搜索框中键入以下内容:“androidx.fragment”,然后点击搜索。列表将显示在库列表下方,然后单击第一个,然后单击完成。窗口将消失,然后单击应用。它将获取 Gradle 构建模型,然后自动重建/更新到您的项目。
【讨论】:
如果您有新问题,请点击 按钮提出问题。如果有助于提供上下文,请包含指向此问题的链接。 - From Review @ChristophE 抱歉,我忘了说这实际上是我所做的修复。以上是关于Android Studio 和 android.support.v4.app.Fragment:无法解析符号的主要内容,如果未能解决你的问题,请参考以下文章