2017-05-26 9 views
0

ローカルデータベースを管理するために私のプロジェクトでgreendaoを使用しました。アンドロイドスタジオでgreendaoジェネレータクラスファイルを実行できません

プロジェクトbuild.gradle

buildscript { 
    ext.kotlin_version = '1.1.2-4' 
    repositories { 
     maven { 
      url 'https://maven.google.com' 
     } 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:3.0.0-alpha1' 
     classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 
     classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

アプリbuild.gradle

apply plugin: 'com.android.application' 
apply plugin: 'kotlin-android' 
apply plugin: 'org.greenrobot.greendao' 

... 

dependencies {... 
compile 'org.greenrobot:greendao:3.2.2' 
    compile project(':greendaolib') 
} 

Greendaolib

apply plugin: 'java' 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile 'org.greenrobot:greendao-generator:3.2.2' 
} 


public class MainGenerator { 

    public static void main(String[] args) throws Exception { 

     //place where db folder will be created inside the project folder 
     Schema schema = new Schema(1,"com.v_empowr.voicestry.database"); 

     //Entity i.e. Class to be stored in the database // ie table LOG 
     Entity word_entity= schema.addEntity("LOG"); 

     word_entity.addIdProperty(); //It is the primary key for uniquely identifying a row 

     word_entity.addStringProperty("text").notNull(); //Not null is SQL constrain 

     // ./app/src/main/java/ ---- com/codekrypt/greendao/db is the full path 
     new DaoGenerator().generateAll(schema, "./app/src/main/java"); 

    } 
} 

build.gradleエラーメッセージの実行プログラム

Exception in thread "main" java.lang.NoClassDefFoundError: org/greenrobot/greendao/generator/Schema 
    at com.example.MainGenerator.main(MainGenerator.java:12) 
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) 
    ... 1 more 
ながら、ここで

私は のAndroid Studioの3.0カナリー1つの ビルド#AI-171.4010489、2017年5月16日 JREの上に構築された使用しています:1.8.0_112-リリース-736 AMD64 JVM:OpenJDKの64ビットサーバーVM JetBrainsのsroに によってはWindows 7 6.1

問題を解決するために私に提案してください。アプリで

答えて

0

:最後にクラス Go to right side gradle, and click on greendaolib->Tasks->application->run

に実行でgreendaolib buld.gradle

project(":greendaolib") 
     { 
      apply plugin: 'java' 
      apply plugin: 'application' 

      mainClassName = 'your main class full path' 
      outputDatabase = 'classes/' 

      dependencies { 
       compile fileTree(include: ['*.jar'], dir: 'libs') 
       compile 'org.greenrobot:greendao-generator:3.2.2' 
      } 

      task createDirs { 
       def dir = file(outputDatabase) 
       dir.mkdir() 
      } 
      run { 
       args outputDatabase 
      } 
     } 

でbuild.gradle

android { 
.. 

sourceSets { 
     main{ 
      java.srcDirs = ['src/main/java','src/main/java-gen','../greendaolib/classes'] 

     } 
    } 
} 

関連する問題