本文链接,转载请留言http://blog.csdn.net/jan_s/article/details/51498420
场景
在项目中会有很多通用的jar、开源项目、或者自己的库,然后给多个App项目使用,有很多公司都是通过maven或者jcenter远程库依赖来解决问题,本文是通过一个本地svn库通过依赖同一个Lib(Project)来实现通用代码依赖。
如以下效果
配置
1.简单的说下配置过程,就是先New一个Project(MyApp),这相当于我们的主要的APP工程了,怎么创建就不说了,很简单一路Next.
2.接着就是创建Lib库啦,这里取名为MyLib,创建过程跟Project(MyApp)一样,New一个一路Next;
3.好了,我们开始关键的了,修改MyLIb的默认moudle名(app->carzy-lib),然后把他的build.gradle修改成差不多如下
apply plugin: 'com.android.library'//作为library的project
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
//applicationId "com.jan.lib" //这个appid 不要显示了
//以下都是默认的,随意哦
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
}
4.我这里插一下,^_^,先在Lib里写个carzyUtil方法,后面可以验证一下。
5.接下来修改MyApp,先配置setttings.gradle
include ':app'
//在当前app同一目录下的myLib引入改Project(MyApp)
include 'MyLib' //注意:这个MyLib名字就是那个project的实际名称
project(":MyLib").projectDir = new File("../MyLib/")
include ':MyLib:crazy-lib'
6.接着在app的build.gradle中加入依赖语句即可。
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) //编译已导入的Project(MyLib) compile project(":MyLib:crazy-lib") }7.clean或者build一下项目。
8.看看是否能够加载那个事先写好的crazyUtils呢,好像可以哦
public class MainActivity extends AppCompatActivity {
private TextView helloTv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
helloTv = (TextView) findViewById(R.id.tv_hello);
helloTv.setText(JanCrazyUtils.getNewSkill());
}
}
9.运行一下把
结尾
这样的方式只能作为本地库的简单依赖和运用,可能会出现build不同步等问题,但是,只要愿意死磕,什么问题都会慢慢被消磨掉的,就像这人生一样,没有过不去的坎,希望本篇博文对后来者有点帮助吧。谢谢各位!本文链接:http://blog.csdn.net/jan_s/article/details/51498420,转载请留言。