把eclipse的android libary库项目融入gradle项目中苦与乐
2016-07-26 14:18
447 查看
现在的主流android项目大多是as构建的,我也赶着时代潮流的尾巴,登上了as这辆车,对于ide的强烈的高要求情节,让我找了idea来开发,抱歉没有使用正版,太贵了,是从网上找的破解版,出于学习目的,并没有用于商业开发。
刚换了工作来到一个新公司,之前做的一个sdk是用ant构建的eclipse项目,它是一个库项目,给第三方使用,于是我就想转为gradle构建方法,并写一个子项目来验证sdk的各个功能,于是悲剧的小故事开始上演了。
在as中加入第三方项目的时候,一般的习惯是这样的
![](https://img-blog.csdn.net/20160726134836120)
通常我们引入jar包使用,非常灵,引入第三方项目的时候通常是这样
<span style="font-size:18px;">compile 'com.android.support:appcompat-v7:24.1.1'</span>
如何引入eclipse版本的library呢,主要是两部要做
把项目构建为gradle版本
在test项目中引入library。
先说第一步构建gradle项目,主要是在项目中加入一个gradle文件,例如
我这里使用的1.7,之前项目是1.6的,开始我使用的1.8构建的,出现的问题让我崩溃,后来才知道是jdk版本的问题。
第二个要注意的地方
这个地方我开始没有注释,结果一直报错,测试的activity.class解析不出来,我看了其他人的项目,没这个问题,可能这个过程我漏了什么。我个人理解是因为资源文件夹重复,在test项目中出现了重复性错误。总之如果出现问题,可是试一试。
接着需要把项目引入test项目,如果用第一图中的方式,会怎么样呢,就是添加module模块的方式,test项目会识别你的代码,不会出现语法错误,可是当build的时候,会告诉你不能识别library项目,不信的朋友自己试一试,保证百试不爽,再重复一遍,不是jar包,我们要引入library项目。那该怎么做呢?在test项目中的gradle文件加入下边这句话
这点还差点,还需要在setting的gradle文件中加入
划去的部分是项目名称,最后需要注意的两个地方
compile project ‘xxxxxx’,别出现这种低级错误
还有就是在之前eclipse的项目的gradle文件的头部是这样的
刚换了工作来到一个新公司,之前做的一个sdk是用ant构建的eclipse项目,它是一个库项目,给第三方使用,于是我就想转为gradle构建方法,并写一个子项目来验证sdk的各个功能,于是悲剧的小故事开始上演了。
在as中加入第三方项目的时候,一般的习惯是这样的
通常我们引入jar包使用,非常灵,引入第三方项目的时候通常是这样
<span style="font-size:18px;">compile 'com.android.support:appcompat-v7:24.1.1'</span>
如何引入eclipse版本的library呢,主要是两部要做
把项目构建为gradle版本
在test项目中引入library。
先说第一步构建gradle项目,主要是在项目中加入一个gradle文件,例如
android { compileSdkVersion 24 buildToolsVersion "24.0.1" compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } defaultConfig { minSdkVersion 15 targetSdkVersion 24 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } useLibrary 'org.apache.http.legacy' lintOptions { abortOnError false } dexOptions { javaMaxHeapSize "4g" preDexLibraries = false } sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] // resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } // Move the build types to build-types/<type> // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... // This moves them out of them default location under src/<type>/... which would // conflict with src/ being used by the main source set. // Adding new build types or product flavors should be accompanied // by a similar customization. debug.setRoot('build-types/debug') release.setRoot('build-types/release') } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' // compile 'com.android.support:appcompat-v7:24.1.1' }这里需要注意两点jdk的构建版本,如果原项目中使用版本比较低,你贸然使用1.8的版本,会比较悲剧,可能会出现以下问题
我这里使用的1.7,之前项目是1.6的,开始我使用的1.8构建的,出现的问题让我崩溃,后来才知道是jdk版本的问题。
第二个要注意的地方
// resources.srcDirs = ['src']
这个地方我开始没有注释,结果一直报错,测试的activity.class解析不出来,我看了其他人的项目,没这个问题,可能这个过程我漏了什么。我个人理解是因为资源文件夹重复,在test项目中出现了重复性错误。总之如果出现问题,可是试一试。
接着需要把项目引入test项目,如果用第一图中的方式,会怎么样呢,就是添加module模块的方式,test项目会识别你的代码,不会出现语法错误,可是当build的时候,会告诉你不能识别library项目,不信的朋友自己试一试,保证百试不爽,再重复一遍,不是jar包,我们要引入library项目。那该怎么做呢?在test项目中的gradle文件加入下边这句话
这点还差点,还需要在setting的gradle文件中加入
划去的部分是项目名称,最后需要注意的两个地方
compile project ‘xxxxxx’,别出现这种低级错误
还有就是在之前eclipse的项目的gradle文件的头部是这样的
apply plugin: 'com.android.library'
相关文章推荐
- SourceProvider.getJniDirectories
- 执行失败的任务 ': processDebugManifest'
- MyEclipse Web Project转Eclipse Dynamic Web Project
- Windows Clang开发环境备忘
- DLL(Dynamic Linkable Library) 详解说明
- 傻瓜式用Eclipse连接MySQL数据库
- Android Studio使用教程(六):Gradle多渠道打包
- Eclipse引入jquery报错如何解决
- 让Flex Builder 3.0与Eclipse3.4整合起来
- Eclipse配置Javascript开发环境图文教程
- 使用zend studio for eclipse不能激活代码提示功能的解决办法
- 图解Eclipse j2ee开发环境的搭建过程
- 两种Eclipse部署动态web项目方法
- ext for eclipse插件安装方法
- PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
- 解决Fedora14下eclipse进行android开发,ibus提示没有输入窗口的方法详解
- eclipse导入jquery包后报错的解决方法
- Eclipse 格式化代码时不换行与自动换行的实现方法
- asp.net(c#)Enterprise Library 3.0 下载
- Eclipse下jQuery文件报错出现错误提示红叉