Gradle7生成Ormlite配置提示JavaExec.main属性废弃如何解决
解决方法
直接按下面步骤改,不需要懂Gradle原理,复制粘贴对应内容就行,改完和你之前的使用习惯几乎没有区别:
- 先确认你的
DatabaseConfigUtil类放在main源码目录下,路径和你的包名匹配,也就是app/src/main/java/com/mydomain/myapp/DatabaseConfigUtil.java,不要挪到test相关目录。 - 打开app模块的
build.gradle文件,滑到整个文件最末尾,也就是android{}代码块的外面,粘贴下面这段代码:
task createOrmliteConfig(type: JavaExec) { // 注意把这里的类名替换成你自己的DatabaseConfigUtil的完整包路径 mainClass = "com.mydomain.myapp.DatabaseConfigUtil" classpath = files( android.bootClasspath, configurations.compileClasspath, fileTree(dir: "$buildDir/intermediates/javac/debug/classes", include: "**/*.class") ) // 生成的配置文件直接输出到main的assets目录,省得手动复制 workingDir = file("src/main/assets/") jvmArgs = ["-Dfile.encoding=UTF-8"] }
- 点一下Android Studio顶部的小锤子图标(Make Project),等项目编译完成,保证所有数据库实体类都生成了对应的class文件。
- 两种运行方式选一个即可:
- 临时跑一次:打开右侧边栏的Gradle面板,依次展开
app -> Tasks -> other,找到createOrmliteConfig双击运行,控制台看到BUILD SUCCESSFUL就说明配置文件生成好了。 - 想像之前一样点顶部的运行按钮直接跑:删掉你之前建的那个失效的Application类型运行配置,新建一个Gradle类型的运行配置,选中刚才的
createOrmliteConfig任务,保存之后点运行按钮就和之前操作完全一致。
- 临时跑一次:打开右侧边栏的Gradle面板,依次展开
注意事项
- 粘贴完代码一定要把
mainClass后面的字符串换成你自己的DatabaseConfigUtil的完整类名,不然会报找不到类的错。 - 如果assets目录还没创建,自己在
app/src/main/下面新建一个叫assets的文件夹即可。 - 这个写法用的是Gradle官方要求的
mainClass属性,不会再出现你遇到的废弃警告,Gradle7、Gradle8版本都能正常使用。 - 每次改完数据库实体类,重新跑一遍这个任务就能生成最新的配置文件,不需要改其他配置。
- 如果运行时报找不到自定义实体类的错,把classpath里的fileTree路径改成
"$buildDir/intermediates/javac/debug/compileDebugJavaWithJavac/classes"即可。
内容的提问来源于stack exchange,提问作者Kenny Wyland
相关产品推荐
相关产品推荐

