错误记录Android 注解处理器报错 ( 非法的类文件开始 , 请删除该文件或确保该文件位于正确的类路径子目录中。 )

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误记录Android 注解处理器报错 ( 非法的类文件开始 , 请删除该文件或确保该文件位于正确的类路径子目录中。 )相关的知识,希望对你有一定的参考价值。





一、报错信息



android APT , 使用 注解处理器 生成 Java 代码 , 报如下错误 ;

错误: 无法访问MainActivity_ViewBinder
  错误的类文件: D:\\002_Project\\002_Android_Learn\\APT\\app\\build\\intermediates\\javac\\debug\\classes\\kim\\hsl\\apt\\MainActivity_ViewBinder.class
    非法的类文件开始
    请删除该文件或确保该文件位于正确的类路径子目录中。

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

在这里插入图片描述





二、解决方案



在 D:\\002_Project\\002_Android_Learn\\APT\\app\\build\\intermediates\\javac\\debug\\classes\\kim\\hsl\\apt\\MainActivity_ViewBinder.class 目录中已经存在了一个文件 , 之前使用 ButterKnife 时生成的文件 ;

根据 完整 包名 + 类名 生成文件 , 使用的是 createClassFile API , 生成字节码文件 , 这里的用法错误 ;

// 根据 包名.类名_ViewBinder 创建 Java 文件
JavaFileObject javaFileObject = mFiler.createClassFile(packageName + "." + className);

必须使用如下方法 :

// 根据 包名.类名_ViewBinder 创建 Java 文件
JavaFileObject javaFileObject = mFiler.createSourceFile(packageName + "." + className);

眼瞎写错了 , 一般人不会点进来 , 留个错误记录 , 挂着吧 ;

以上是关于错误记录Android 注解处理器报错 ( 非法的类文件开始 , 请删除该文件或确保该文件位于正确的类路径子目录中。 )的主要内容,如果未能解决你的问题,请参考以下文章

错误记录Android 编译时技术版本警告 ( 注解处理器与主应用支持的 Java 版本不匹配 )

错误记录IntelliJ IDEA 编译 Java 文件报错 ( 错误: 非法字符: ‘ufeff‘ )

错误记录Android Studio 编译时 Kotlin 代码编译报错 ( 升级支持库时处理 @NonNull 参数 )

Android Studio错误日志-注解报错Annotation processors must be explicitly declared now.

Error处理: “非法字符: 65279”的解决办法

错误记录Android Studio 编译报错 ( The minCompileSdk (33) specified in a dependency‘s AAR metadata META-I )