错误 找不到符号android编译,Android Studio 打开已有项目,编译出错,提示“错误: 找不到符号”的解决方法...-程序员宅基地

技术标签: 错误 找不到符号android编译  

在开发过程中,经常会遇到多人、异地协同工作的模式。

鉴于每个人使用的Android Studio版本不同、gradle环境的不同,我们可能会遇到打开别人的项目编译不过的问题。

对于Android Studio的这个臭毛病,如果遇到了真的还挺烧脑。比如下面这种报错:

> Task :app:compileROWDebugJavaWithJavac FAILED

E:\Source\test\SetupWizardExt\app\src\main\java\com\test\setup\network\AccessPoint.java:20: 错误: Nullable在android.annotation中不是公共的; 无法从外部程序包中对其进行访问

import android.annotation.Nullable;

^

E:\Source\test\SetupWizardExt\app\src\main\java\com\test\wizardmanager\utils\WizardActionParser.java:3: 错误: NonNull在android.annotation中不是公共的; 无法从外部程序包中对其进行访问

import android.annotation.NonNull;

^

E:\Source\test\SetupWizardExt\app\src\main\java\com\test\wizardmanager\WizardManager.java:21: 错误: 找不到符号

import static android.content.Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT;

^

符号: 静态 FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT

位置: 类

E:\Source\test\SetupWizardExt\app\src\main\java\com\test\setup\utils\GlobalConfigUtil.java:28: 错误: 找不到符号

import static android.app.ActivityManager.getCurrentUser;

^

符号: 静态 getCurrentUser

位置: 类

E:\Source\test\SetupWizardExt\app\src\main\java\com\test\setup\LenovoGestureNavigationSettingsActivity.java:51: 错误: 找不到符号

import static android.os.UserHandle.USER_CURRENT;

^

符号: 静态 USER_CURRENT

位置: 类

E:\Source\test\SetupWizardExt\app\src\main\java\com\test\setup\LenovoGestureNavigationSettingsActivity.java:50: 错误: 找不到符号

import static android.app.ActivityManager.getCurrentUser;

^

符号: 静态 getCurrentUser

位置: 类

......

E:\Source\test\SetupWizardExt\app\src\main\java\com\test\setup\network\WifiTracker.java:330: 错误: 找不到符号

Settings.Global.SPEED_LABEL_CACHE_EVICTION_AGE_MILLIS,

^

符号: 变量 SPEED_LABEL_CACHE_EVICTION_AGE_MILLIS

位置: 类 Global

E:\Source\test\SetupWizardExt\app\src\main\java\com\test\setup\network\WifiTracker.java:500: 错误: 找不到符号

!(config.selfAdded && config.numAssociation == 0)) {

^

符号: 变量 selfAdded

位置: 类型为WifiConfiguration的变量 config

注: 某些输入文件使用或覆盖了已过时的 API。

注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。

注: 某些输入文件使用了未经检查或不安全的操作。

注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。

注: 某些消息已经过简化; 请使用 -Xdiags:verbose 重新编译以获得完整输出

100 个错误

FAILURE: Build failed with an exception.

* What went wrong:

Execution failed for task ':app:compileROWDebugJavaWithJavac'.

> Compilation failed; see the compiler error output for details.

* Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.

Use '--warning-mode all' to show the individual deprecation warnings.

See https://docs.gradle.org/5.1.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 5s

45 actionable tasks: 8 executed, 37 up-to-date

16:03:06: Task execution finished 'assembleROW'.

b712121d70979757ae93d010a6aa14fb.png

上面所示的找不到符号的共有二十多个文件(中间以省略号代替),我试着找了几个,提到的变量或者方法在指定的类中都是存在的,很奇怪为啥AS睁眼说瞎话呢,随后我把我的解决过程附在下面:

点Build-Clean Project试了没用。。。

点File-Invalidate Caches/Restart试了没用。。。

于是怀疑版本不对,询问了做这个项目的同事,对比了sdk,gradle配置等都一样。。。

然后怀疑与Android Studio一些设置有关。。。

经确认,没问题的版本是3.4.2,我的3.5的,别的同事的3.6等等版本的Android Studio都不可以,一样样的问题。然后我觉得是高版本的不行,于是下载了3.4.2,唉,还是不行。。。

最后没办法了,咨询了一个朋友,建议我清除AndroidStudio的缓存试试,我就清了一下,然后重新打开项目,竟然编译通过了!

【缓存在C:\Users\主机名 找到 .AndroidStudiox.x(可能有多个版本的,至少要清了不再使用的版本缓存)】

总结:经历一番鏖战(总计三天的时间,22333...),终于解决了,希望这篇文章能给存在同样问题的你一个帮助,拿走不谢!!!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39947961/article/details/117501026

智能推荐

java版我的世界怎么疾跑,《我的世界手机版》疾跑有什么用 疾跑动作介绍-程序员宅基地

文章浏览阅读1.8k次。疾跑在我的世界PC版中是一个基础操作,但是在手机版中却因为手机版操作方式的问题一直没有更新,而最近的消息称疾跑也即将加入到游戏了,今天当乐网小编带大家来看一下疾跑这个动作到底是什么:疾跑 (Sprinting)允许玩家移动的快些,大约是 5.6 米/秒。疾跑比一般的行走 (4.3 米/秒) 快了约 30 %。玩家透过接连下两次“前进”键 (预设为 W) 后按住按键可以疾跑。疾跑中可以最大可以平行..._m c p c版怎么跑

谈谈序列化—实体bean一定要实现Serializable接口?_bean序列化serializable 是否需要-程序员宅基地

文章浏览阅读3.7w次,点赞76次,收藏154次。导读:最近在做项目的过程中,发现一个问题,就是我们最开始的时候,传递参数包括返回类型,都有map类型。但是由于map每次都要匹配key值,很麻烦。所以在之后就将参数传递和返回类型全都改成了实体bean,并且让每个bean都实现了Serializable接口。然后,在这里的时候,就有点疑惑。首先:为什么要进行序列化;其次:每个实体bean都必须实现serializabel接口吗?最后:我做一些项目的_bean序列化serializable 是否需要

Mifare S50与Mifare S70_csdn mifare s50/s70-程序员宅基地

文章浏览阅读456次。射频识别技术漫谈(13)——Mifare S50与Mifare S70_csdn mifare s50/s70

单点登录(SSO)解决方案之 CAS客户端与Spring Security集成-程序员宅基地

文章浏览阅读714次。单点登录(SSO)解决方案之 CAS客户端与Spring Security集成 接上篇:单点登录(SSO)解决方案之 CAS服务端数据源设置及页面改造Spring Security  Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中..._springsecurity 集成第三方的cas-client并且保留原本的登录方式

在微信小程序中访问图片出现403的解决办法_微信小程序打开图片403-程序员宅基地

文章浏览阅读836次。在微信小程序中访问图片出现403的解决办法_微信小程序打开图片403

[机器学习] Coursera ML笔记 - 神经网络(Learning) - 标准梯度下降_神经网络 标准梯度下降-程序员宅基地

文章浏览阅读610次。本文是Neural network - Learning笔记的补充,给出了神经网络的标准梯度下降算法,统一了前向传播、反向传播和梯度计算,欢迎大家讨论,谢谢!_神经网络 标准梯度下降

随便推点

umount: /run/user/1000/gvfs: mountpoint not found-程序员宅基地

文章浏览阅读2.8k次。错误:解决方法:说明此目录下没有挂载点,也就是说你应该去/run/user/1000/目录下,对比上图两个目录,这个问题也很简单,主要是刚学linux的小伙伴可能不大理解。喜欢就点赞关注一下,博主会不定期写一些linux的文章。..._mountpoint not found

新浪为什么不支持带有支付的应用_新浪支付提现问题-程序员宅基地

文章浏览阅读885次。新浪没有通过应用申请,理由是暂时不支持带有支付的应用。这是为什么?垂直领域的社交应用可以做,但一定是奔着社区电子商务做的。社区不是目的,电子商务才是目的。在新浪的应用开发者协议中并未提到这一点。有人帮忙支招么?_新浪支付提现问题

简述DRM_sun4i-drmdrmfb gpu-程序员宅基地

文章浏览阅读2.2k次。linux kernel最早是使用fbdev API来管理图形显示的framebuffer,但是不能满足基于GPU的现代3D硬件加速技术。这些设备通常需要在自己的内存中创建和管理command queue,以便将command分发给GPU进行渲染,并且还需要对内存进行管理如buffer和可用空间。最初,用户程序(如X Server)直接管理这些资源,但通常只有一个程序访问,当2个及以上程序同时访问相同硬件时,并以不同的方式设置每个硬件资源时大多数情况下会发生异常(图1)。图1。_sun4i-drmdrmfb gpu

Vector集合使用特有遍历方式_vector特有的迭代器遍历-程序员宅基地

文章浏览阅读123次。Vector集合使用特有遍历方式import java.util.Enumeration;import java.util.Vector;public class VectorTest { public static void main(String[] args) { Vector<String> ve = new Vector<>(); ve.add("..._vector特有的迭代器遍历

java 窗体添加背景图片_Java Swing实现窗体添加背景图片的2种方法详解-程序员宅基地

文章浏览阅读5k次。本文实例讲述了java Swing实现窗体添加背景图片的2种方法。分享给大家供大家参考,具体如下:在美化程序时,常常需要在窗体上添加背景图片。通过搜索和测试,发现了2种有效方式。下面分别介绍。1. 利用JLabel加载图片利用JLabel自带的setIcon(Icon icon)加载icon,并设置JLabel对象的位置和大小使其完全覆盖窗体。这是一个很取巧的办法,代码非常简单,如下所示。JLab..._java窗体添加背景图片

winform,listbox设置行高-程序员宅基地

文章浏览阅读1.3k次。//必须要在写这个事件里写才有效果 private void listBox1_MeasureItem(object sender, MeasureItemEventArgs e) { e.ItemHeight = 20; }  转载于:https://www.cnblogs.com/Anders888/p/357..._winform listbox 行距

推荐文章

热门文章

相关标签