问题描述
Android启动模拟器产生的问题,今天运行程序突然出现了警告,以前没有出现过,我也没有更改任何代码,build问题如下图:
这个java文件出现了问题,但是java文件不可更改,是接口文件
日志信息如下:
Token retrieval failed without exception message. Will retry token retrieval
中文翻译:令牌检索失败,没有异常消息。将重试令牌检索
network time: 10033, HTTP status code: na, exception com.android.volley.TimeoutError
解决方案
1、在Build出现异常信息的资源文件为compileDebugJavaWithJavac
2、在Android Studio的终端Terminal输入查询命令:
gradlew compileDebugJavaWithJavac --stacktrace 黄字部分的内容根据出错资源文件查询更改为自己出错的文件(查询出错资源文件见步骤1)。
gradlew compileDebugJavaWithJavac --stacktrace
下面两种方式可根据需要查询
gradlew 出错资源文件 --stacktrace -info
gradlew 出错资源文件 --stacktrace -debug
查看出现错误的资源文件的详细信息
3、 类ActivityChatBinding文件对应我的java文件ChatActivity.java和布局文件activity_chat.xml
打开xml布局文件,我使用到了一个Toolbar,该布局非我自己编写
<androidx.appcompat.widget.Toolbar
打开Toolbar,发现很多异常信息
4、删除这个布局或改用其他布局实现,再次运行APP成功.
总结
发生这种错误的原因是,这个API已经过时。
在出现错误时,首先找到错误的文件资源包,查询详细信息,出错文件到底牵涉到哪个java文件或xml文件,找到API接口或外部引用,删除或修改,解决问题。
由于问题出现的很突然,之前并未出现过,所以我以为是环境问题,关闭项目,import项目,删除.idea和.gradle文件,再次close项目,在open项目,run。但是问题并未解决。