FindBugs IDEA - ClassNotFoundException com.google.wireless.android.sdk.stats.IntellijIndexingStats
Posted
技术标签:
【中文标题】FindBugs IDEA - ClassNotFoundException com.google.wireless.android.sdk.stats.IntellijIndexingStats【英文标题】: 【发布时间】:2019-09-14 13:53:21 【问题描述】:FindBugs IDEA v1.0.1 android Studio 3.4
运行 FindBugs 时出现此错误。 我不在应用程序的任何地方使用 com.google.wireless.android.sdk。
Error:Internal error: (java.lang.ClassNotFoundException) com.google.wireless.android.sdk.stats.IntellijIndexingStats$Index
java.lang.ClassNotFoundException: com.google.wireless.android.sdk.stats.IntellijIndexingStats$Index
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.intellij.util.indexing.counters.IndexCounters.<clinit>(IndexCounters.java:34)
at com.intellij.util.indexing.impl.MapReduceIndex.<init>(MapReduceIndex.java:86)
at org.jetbrains.jps.backwardRefs.index.CompilerReferenceIndex$CompilerMapReduceIndex.<init>(CompilerReferenceIndex.java:214)
at org.jetbrains.jps.backwardRefs.index.CompilerReferenceIndex.<init>(CompilerReferenceIndex.java:73)
at org.jetbrains.jps.backwardRefs.JavaCompilerBackwardReferenceIndex.<init>(JavaCompilerBackwardReferenceIndex.java:12)
at org.jetbrains.jps.backwardRefs.JavaBackwardReferenceIndexWriter.initialize(JavaBackwardReferenceIndexWriter.java:74)
at org.jetbrains.jps.backwardRefs.JavaBackwardReferenceIndexBuilder.buildStarted(JavaBackwardReferenceIndexBuilder.java:40)
at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:358)
at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:178)
at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:138)
at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:302)
at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:135)
at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:229)
at org.jetbrains.jps.service.impl.SharedThreadPoolImpl.lambda$executeOnPooledThread$0(SharedThreadPoolImpl.java:42)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
【问题讨论】:
@Carlton 是的,我切换到了 spotbugs。 认为是这个plugin;至少有com.google.wireless.android.sdk.stats
参与。
我升级到 Android Studio 3.4 后出现此错误。你有过类似的经历吗?
切换到Android Studio 3.4时出现的bug
相关github问题
【参考方案1】:
我想这可能就是答案。
SpotBugs 是 FindBugs 的精神继承者,在其社区的支持下从它停止的那一刻开始。
The FindBugs Plugin
由于 FindBugs 未维护且不支持为 Java 9 及更高版本编译的字节码,因此 FindBugs 插件已被弃用,并计划在 Gradle 6.0 中删除。请考虑改用SpotBugs plugin。
You should have at least 512 MB of memory 使用 SpotBugs。要分析非常大的项目,可能需要更多内存。
非常重要的问题Unable to use Spotbugs in Android application。
【讨论】:
我尝试在设置对话框中的 Marketplace 中搜索 SpotBugs,但没有返回。【参考方案2】:此解决方案基于您将 Android Studio 用于 Flutter 和 Android 的假设。每次我关闭 Flutter 项目并打开 Android 项目时,我都需要配置 android Sdk,否则它会给我这个错误:
Error:Internal error: (java.lang.ClassNotFoundException)
com.google.wireless.android.sdk.stats.IntellijIndexingStats$Index
只需转到 LogCat 并单击“请配置 Android SDK”并从下拉列表中选择我猜想的最新构建工具版本 28.0.3(或您的最新构建版本)。
【讨论】:
这很奇怪:我找到了一个解释 Android Studio "Logcat" (developer.android.com/studio/debug/am-logcat) 的页面,但它没有在 View > Tool Windows > Logcat 中列出【参考方案3】:打开 FindBugs 设置,点击常规,然后关闭“在分析之前编译受影响的文件”。它适用于 Android Studio 3.5
【讨论】:
【参考方案4】:我在使用 JDK 1.8 时遇到了类似的错误。该错误是由缺少密钥库文件引起的。尝试使用 JDK 12 中的密钥工具生成新的密钥库。这对我有用。
另外根据你的gradle版本可能还需要添加一些依赖和maven仓库 AndroidAnnotations 版本:
4.3.1
Android编译SDK版本:
25
【讨论】:
【参考方案5】:这为我消除了错误:
文件/设置/构建、执行、部署/编译器
取消勾选:自动生成项目
【讨论】:
它对我有用,谢谢。我正在使用 Android Studio 4.0【参考方案6】:值得我通过导入以 IntelliJ Pro 开始并导入 Android Studio 的项目得到这个确切的错误 - 删除项目根目录下的 .idea
目录并使用 Android Studio 重新导入项目清除它。
【讨论】:
【参考方案7】:我在没有运行 FindBugs 的情况下在 Android Studio 中收到此错误。
我最初看到 an IntelliJ post 建议我在 IntelliJ 注册表中禁用基于编译器的索引以停止错误:
作为一种解决方法,您可以在注册表中设置
compiler.ref.index = false
(ctrl+alt-shift+/ 或通过“按名称查找操作”操作)
但是,我不想满足于失去基于编译器的索引,在执行Invalidate Caches / Restart...
之后,我看到了以下消息:
Internal caches are corrupted or have outdated format, forcing project rebuild
那条消息把我带到了pdinklag's answer,我是modified slightly for Android Studio
我关闭了 Android Studio,然后运行:
rm -rf ~/.android
rm -rf <PROJECT_ROOT>/.idea
然后重新启动 Android Studio,一切正常。
【讨论】:
【参考方案8】:似乎 FindBugs 无法在分析之前编译文件。
在 Android Studio 中,转到 FindBugs 设置(位于文件 > 设置 > 其他设置下),然后取消选中“在分析之前编译受影响的文件”。
执行此操作时,您需要自己编译文件(例如,通过构建和运行应用程序),或者 FindBugs 分析使用旧文件数据(来自之前的构建)。
【讨论】:
【参考方案9】:要在 Android Studio 中解决此问题,请访问:
文件 -> 设置 -> 构建、执行、部署 -> 编译器 -> Java 编译器
将javac
更改为eclipse
,然后申请。
【讨论】:
对此有何解释? 这不再是 AS 上的选项 我在 AS 4.0.1 中尝试过这个选项,错误消失了,但出现了其他错误:Error:Module 'MyModule' production: java.lang.NoClassDefFoundError: com/android/resources/ResourceFolderType 在 MacOS 上它在 Android Studio 下 -> 首选项以上是关于FindBugs IDEA - ClassNotFoundException com.google.wireless.android.sdk.stats.IntellijIndexingStats的主要内容,如果未能解决你的问题,请参考以下文章
IntelliJ IDEA 安装使用 FindBugs 代码分析详述
idea 安装findBugs 可以做代码扫描,也可以导出扫描结果生成扫描报告
IDEAL葵花宝典:java代码开发规范插件 FindBugs-IDEA
IntelliJ IDEA 2021.2 发布,这次要干掉 FindBugs 了!!
FindBugs IDEA - ClassNotFoundException com.google.wireless.android.sdk.stats.IntellijIndexingStats