繁体   English   中英

实例化GreenDao时出错freemarker

[英]Error freemarker while instancing GreenDao

当我尝试在AsyncTask内部或外部实例一个新的DaoGenerator时,它使我的应用程序崩溃。

实例化DaoGenerator:

Schema schema = new Schema(1,"com.example.administrator.teste");

Entity user = schema.addEntity("User");

user.addIdProperty();
user.addStringProperty("name");
user.addStringProperty("user");
user.addStringProperty("pass");

try {
    new DaoGenerator().generateAll(schema, "../db/src");
}catch (Exception e)
{
    e.printStackTrace();
}

它给出以下异常:

由以下原因引起:java.lang.VerifyError:freemarker上的freemarker / ext / beans / ClassIntrospector在freemarker上的freemarker.ext.beans.BeansWrapper。(BeansWrapper.java:318)在freemarker上的freemarker.ext.beans.BeansWrapper。(BeansWrapper.java:245) .ext.beans.BeansWrapper。(BeansWrapper.java:196)位于freemarker.ext.beans.BeansWrapperSingletonHolder。(BeansWrapperSingletonHolder.java:27)位于freemarker.ext.beans.BeansWrapper.getDefaultInstance(BeansWrapper.java:795) template.ObjectWrapper。(ObjectWrapper.java:49)在freemarker.template.Configuration.getDefaultObjectWrapper(Configuration.java:1552)在freemarker.core.Configurable。(Configurable.java:151)在freemarker.template.Configuration。(Configuration。 java.357)在freemarker.template.Configuration。(Configuration.java:233)在de.greenrobot.daogenerator.DaoGenerator。(DaoGenerator.java:61)在com.example.administrator.teste.LoginActivity $ CreateDatase.doInBackground(LoginActivity .java:62),位于com.example.administrator.teste.LoginActivity $ CreateDatase.doInBackground(Login android.os.AsyncTask $ 2.call(AsyncTask.java:288)上的Activity.java:48)android.os.AsyncTask $ SerialExecutor $ 1.run上java.util.concurrent.FutureTask.run(FutureTask.java:237)上的(AsyncTask.java:231),位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112),位于java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:587),位于java.lang.Thread。运行(Thread.java:841)

我试图通过在项目freemarker中进行编译来解决此问题,但是它给出了相同的例外。

附加信息:

  • IDE:Android Studio 1.0.1
  • Java的:JDK 8
  • 图书馆:GreenDao v3

Grandle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.example.administrator.teste"
        minSdkVersion 19
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'de.greenrobot:greendao-generator:1.3.1'
    compile 'freemarker:freemarker:2.3.9'
    compile 'org.freemarker:freemarker:2.3.21'
}

引用http://freemarker.org/freemarkerdownload.html

Until about 2007 the Maven group name was "freemarker" instead of "org.freemarker", 
and as the XML comment above says, this can cause problems, 
as Maven will see them as two independent artifacts with no version conflict. 
If you run into this issue, find the dependency that depends on the old FreeMarker, 
and add this to your application's POM where you declare the problematic dependency:

<dependency>
  <groupId>...</groupId>
  <artifactId>...</artifactId>
  <version>...</version>
  <exclusions>
    <exclusion>
      <groupId>freemarker<!-- Do NOT use this org-less group! --></groupId>
      <artifactId>freemarker</artifactId>
    </exclusion>
  </exclusions>
</dependency>

在您的依赖项中尝试以下操作:

<dependency>
  <groupId>org.freemarker</groupId>
  <artifactId>freemarker</artifactId>
  <version>2.3.21</version>
</dependency>

<dependency>
  <groupId>de.greenrobot</groupId>
  <artifactId>greendao-generator</artifactId>
  <version>1.3.1</version>
  <exclusions>
    <exclusion>
      <groupId>freemarker</groupId>
      <artifactId>freemarker</artifactId>
    </exclusion>
  </exclusions>
</dependency>

或搭配Gradle:

compile 'org.freemarker:freemarker:2.3.21'
compile('de.greenrobot:greendao-generator:1.3.1') {
    exclude module: 'freemarker'
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM