android – 尝试为GreenDAO运行DaoGenerator时出现NoClassDefFoundError

android – 尝试为GreenDAO运行DaoGenerator时出现NoClassDefFoundError,第1张

概述我有一个 Android项目,使用 Android Studio 2.3,它使用GreenDAO生成与SQLite数据库交互的类. DaoGenerator项目之前总是工作……但今天我只需要向实体添加2列/属性,每当我尝试运行生成器项目时,我都会收到以下错误: Exception in thread "main" java.lang.NoClassDefFoundError: org/greenr 我有一个 Android项目,使用 Android Studio 2.3,它使用GreenDAO生成与sqlite数据库交互的类. DaoGenerator项目之前总是工作……但今天我只需要向实体添加2列/属性,每当我尝试运行生成器项目时,我都会收到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/greenrobot/greendao/generator/Schema    at com.company.daogenerator.ProjectDaoGenerator.main(ProjectDaoGenerator.java:20)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:498)    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)Caused by: java.lang.classNotFoundException: org.greenrobot.greendao.generator.Schema    at java.net.urlclassloader.findClass(urlclassloader.java:381)    at java.lang.classLoader.loadClass(ClassLoader.java:424)    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)    at java.lang.classLoader.loadClass(ClassLoader.java:357)

我在我的应用程序的Gradle文件中使用GreenDAO 3.2.0:

compile 'org.greenrobot:greendao:3.2.0'

此外,在DaoGenerator的Gradle文件中:

apply plugin: 'java'dependencIEs {    compile filetree(dir: 'libs',include: ['*.jar'])    compile 'org.greenrobot:greendao-generator:3.2.0'}

我的ProjectDaoGenerator.java文件:

package com.company.daogenerator;import org.greenrobot.greendao.generator.DaoGenerator;import org.greenrobot.greendao.generator.Entity;import org.greenrobot.greendao.generator.Property;import org.greenrobot.greendao.generator.Schema;public class ProjectDaoGenerator {    private static Entity primaryKeyEntity;    private static Entity itemTypeEntity;    public static voID main(String args[]) throws Exception {        Schema schema = new Schema(1,"com.company.project.datamodel");        schema.enableKeepSectionsByDefault();        // define entitIEs        Entity primaryKey = schema.addEntity("CDPrimaryKey");        Entity installation = schema.addEntity("CDInstallation");        // Z_PRIMARYKEY        primaryKeyEntity = primaryKey;        primaryKey.settablename("Z_PRIMARYKEY");        primaryKey.addLongProperty("ENT").columnname("Z_ENT").primaryKey();        primaryKey.addIntProperty("MAX").columnname("Z_MAX");        primaryKey.addStringProperty("name").columnname("Z_name");        primaryKey.addIntProperty("SUPER").columnname("Z_INT");        // CDInstallation        installation.settablename("ZCDINSTALLATION");        installation.addLongProperty("packageDate").columnname("ZPACKAGEDATE");        (...) // Other PropertIEs        // **** Generate Schema ****        new DaoGenerator().generateall(schema,"app/src/main/java");    }}

好像它找不到org.greenrobot.greendao.generator.Schema.

解决方法 像这样设置生成器的build.gradle文件(特别注意mainClassname):

然后单击AndroID Studio右侧边栏中的“Gradle”选项卡,选择daogenerator的“run”任务,如下所示:

它对我有用,更多细节检查链接:https://github.com/greenrobot/greenDAO/issues/619
http://greenrobot.org/greendao/documentation/generator/#Triggering_generation

总结

以上是内存溢出为你收集整理的android – 尝试为GreenDAO运行DaoGenerator时出现NoClassDefFoundError全部内容,希望文章能够帮你解决android – 尝试为GreenDAO运行DaoGenerator时出现NoClassDefFoundError所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1134413.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存