在添加greendao 的plugin 出现?:Could not initialize class com.android.sdklib.repository

简介: 在添加greendao 的plugin 出现?:Could not initialize class com.android.sdklib.repository

在添加greendao 的plugin 出现?:Could not initialize class com.android.sdklib.repository.AndroidSdkHandler



这并不是由于java 版本问题,而是greendao版本和新的gradle 版本不兼容问题,greendao进行了版本升级,3.3.0;


新版gradle 找不到 greendao 报错



5d4d0d18a27f46d6a3c16e594aa15f8e_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.jpg


上面这个问题说明了是不兼容造成的:


翻译:

ebaa8d69157245cc89cf75a023117e7d_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.jpg

25a9c2a3276e482ba5554b52a507130a_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.jpg

add6a8308a18450791053313624df11b_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.jpg



将greeendao版本修改到:3.3.0,build 即可


android  greendao简介



核心类


一旦生成了指定的代码,就可以在你的android工程中使用greenDao了。别忘记在你的android工程中引入greenDao的核心jar包:greenDao.jar。以下是GreenDao的一些必要接口。


DaoMaster:


daomaster以一定的模式持有数据库对象(SQLiteDatabase)并管理一些DAO类(而不是对象)。

有一个静态的方法创建和drop数据库表。它的内部类OpenHelper和DevOpenHelper是SQLiteOpenHelper的实现类,用于创建SQLite数据库的模式。


DaoSession:


管理指定模式下所有可用的DAO对象,你可以通过某个get方法获取到。DaoSession提供一些通用的持久化方法,比如对实体进行插入,加载,更新,刷新和删除。最后DaoSession对象会跟踪identity scope,更多细节,可以参看 session文档。


DAOs(Data access objects):


数据访问对象,用于实体的持久化和查询。对于每一个实体,greenDao会生成一个DAO,相对于DaoSession它拥有更多持久化的方法,比如:加载全部,插入(insertInTx,语境不明了,暂且简单的翻译成插入)。


android 如何引用jar包



首先,把jar包放到项目目录app/libs下,然后是项目引用:三个方法


方法一、添加compile

打开app下的build.gradle,在dependencies里面添加

implementation files('libs/jar包名称.jar'),添加后编译


方法二、在拷贝完jar到libs目录后,右击添加的jar包,在弹出的选项中选择Add As Library


之后会弹出模块选择,选中需要使用jar包的目录


5bece09c9b1c4220a897df1098d6f216_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.jpg


方法三、点击File -> Project Strcture,进入项目结构

之后进入选择所需要添加的jar包

之后按OK,编译,jar包就成功引用了


怎样添加module:



4deabf16f7bf4f63a13c1872d8b38384_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.jpg


defdbab069214b979505d04f2b6765b0_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.jpg


apply plugin: 'xxx'什么作用



  • plugin:增加的是插件;
  • dependence:是jar(只有class文件)或者aar(带有layout)


在application模块的build script中往往第一句就是


apply plugin: 'com.android.application'

在library模块中的build script中第一行是:


apply plugin: 'com.android.library'

我们再引用第三方的一些插件或是我们自定义的插件时,常常也是这一句:


apply plugin:'xxx'

com.android.application插件对应的是com.android.build.gradle.AppPlugin类(以下简称为AppPlugin类)

com.android.library插件对应的是com.android.build.gradle.LibraryPlugin类(以下简称为LibraryPlugin类)

还有就是比如:butterknife,GreenDao


project下build.gradle文件和module下build.gradle



1.build.gradle(Project:Leaks)


**它是顶级配置文件,包含全局配置。在这个文件里的配置项被展开到model下的guild.gradle中。


2.build.gradle(Module:app)


  它是局部配置文件,这个文件中的配置项只在引用它的模块中有作用。

  注意:一般加引用库时在module的build.gradle中加。


build.gradle(Project) 、 build.gradle(Module) 和settings.gradle的执行顺序



=======start load setting


=======start load project gradle


=======start load module gradle


BUILD SUCCESSFUL in 1s


查看java 版本



bb694d4bb37d4b958297784a1df0ae4e_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


bb694d4bb37d4b958297784a1df0ae4e_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png


目录
相关文章
|
4月前
|
Android开发 开发者
Error:Could not find com.android.support:appcompat-v7:27.0.2.
Error:Could not find com.android.support:appcompat-v7:27.0.2.
72 0
|
1月前
|
Android开发
解決Android报错:Could not initialize class org.codehaus.groovy.reflection.ReflectionCache
解決Android报错:Could not initialize class org.codehaus.groovy.reflection.ReflectionCache
48 1
IDEA添加Swagger2:Parameter 0 of method linkDiscoverers in org. springframework hateoas.config.Hateoasconfiguration required a single bean, but 15 were found:
IDEA添加Swagger2:Parameter 0 of method linkDiscoverers in org. springframework hateoas.config.Hateoasconfiguration required a single bean, but 15 were found
|
3月前
|
Android开发
Android studio 出现Plugin [id: ‘com.android.application‘, version: ‘8.1.0‘, apply: false] 问题解决办法
Android studio 出现Plugin [id: ‘com.android.application‘, version: ‘8.1.0‘, apply: false] 问题解决办法
576 1
|
11月前
|
缓存 IDE Go
已解决Gradle错误:“Unable to load class ‘org.gradle.api.plugins.MavenPlugin‘
已解决Gradle错误:“Unable to load class ‘org.gradle.api.plugins.MavenPlugin‘
1082 0
Unable to determine application id: com.android.tools.idea.run.ApkProvisionException: ERROR: APK pat
Unable to determine application id: com.android.tools.idea.run.ApkProvisionException: ERROR: APK pat
341 0
Cause: the class org.apache.tools.ant.taskdefs.optional.junit.JUnitTask was not found
Cause: the class org.apache.tools.ant.taskdefs.optional.junit.JUnitTask was not found
111 0
|
IDE 开发工具
Unable to load class ‘org.gradle.api.internal.plugins.DefaultConvention‘
Unable to load class ‘org.gradle.api.internal.plugins.DefaultConvention‘
1276 0
Unable to load class 'org.gradle.api.internal.component.Usage
Unable to load class 'org.gradle.api.internal.component.Usage
116 0
|
Android开发
Failed to transform artifact 'butterknife-runtime.aar (com.jakewharton:butterknife-runtime:10.1.0)'
Failed to transform artifact 'butterknife-runtime.aar (com.jakewharton:butterknife-runtime:10.1.0)'