• 保存到桌面  加入收藏  设为首页
安卓应用

Android Studio-依赖库制作-发布自己的依赖库依赖包到中央仓库-jitpackio-私服-Java-安卓-代码

时间:2018-06-29 10:27:04   作者:江节胜   来源:胜行天下网   阅读:517   评论:0
1、首先要创建一个空的Android Project工程
 
2、在Android Project工程的基础上 File > New > New Module 创建一个库
Application/Library name 填入库名,Module name 填入 library,
package name可以填和app/中AndroidManifest.xml中包名一致。
 
3、复制相关的java文件夹下的资源以及一些libs或so文件到module中(主app/下不做任何操作)
 
4、修改module中的build.gradle (对照这个来调整) 
示例1:(注意改名)
https://github.com/androidlibraries/jitpackiodemo/blob/master/testandroidlib/build.gradle
 
示例2:(注意改名)(含有资源文件加载 不同module中有加载相同jar的处理):
https://github.com/androidlibraries/PhotoSelector/blob/master/library/build.gradle
 
关于仓库引用:在项目根目录下的build.gradle也加上调整好顺序的地址
创建module默认的依赖可能要去掉:
 
//dependencies {
    // implementation fileTree(dir: 'libs', include: ['*.jar'])  
    // implementation 'com.android.support:appcompat-v7:21.1.0' // 解析不到
    // testImplementation 'junit:junit:4.12'
    // androidTestImplementation 'com.android.support.test:runner:1.0.2'
    // androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
//}
根据需要配置
dependencies {
   //要排除 jar中v4 必须 否则 资源xml中找不到命名空间
    compile 'com.android.support:support-v4:21.0.3' 
    //如果不是为了解决多个module有相同jar的问题,这里需要释放 ()
    // implementation fileTree(dir: 'libs', include: ['*.jar']) 
    //(只要有一个工作或者module使用implementation即可,其他都是provided )
    provided files('libs/universal-image-loader-1.9.3-with-sources.jar')
}
 
5、在Android Project工程根目录下创建gradle-wrapper.properties文件(再次实测 没有也是可以的)
 
 
6、上传到github,创建release版本(同时创建tag)
 
7、进入jitpack.io > get it 
 
8、编译的结果会在log中显示,如果失败了,但是没有明确的错误信息,只是提示Timed out
No build artifacts found,是仓库的顺序问题。
 
9、仓库地址顺序
A 根路径 /build.gradle 
allprojects {//这个应该是为了使用时
    repositories {
        // 如果有新的库引入,尽量把慢的放在后面
 
        // 前4个推荐的 jitpack.io
        mavenLocal()
        mavenCentral()
        jcenter()
        google()
 
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
 
        maven { url 'https://repo1.maven.org/maven2/' }
 
        maven { url "https://jitpack.io" }
 
        jcenter { url "http://jcenter.bintray.com/" }
 
        maven { url 'http://repo.jfrog.org/artifactory/gradle-plugins' }
 
        maven { url "http://oss.sonatype.org/content/repositories/snapshots" }
 
 
//        如果有新的库引入,尽量把慢的放在后面
    }
}
B module 路径 /build.gradle 
 
buildscript {//这个应该是编译时
    repositories { //根目录下的 allprojects 最好也加上
        // 如果有新的库引入,尽量把慢的放在后面
 
        // 前4个推荐的 jitpack.io
        mavenLocal()
        mavenCentral()
        jcenter()
        google()
 
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
 
        maven { url 'https://repo1.maven.org/maven2/' }
 
        maven { url "https://jitpack.io" }
 
        jcenter { url "http://jcenter.bintray.com/" }
 
        maven { url 'http://repo.jfrog.org/artifactory/gradle-plugins' }
 
        maven { url "http://oss.sonatype.org/content/repositories/snapshots" }
 
 
//        如果有新的库引入,尽量把慢的放在后面
    }
    dependencies {
        classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
        classpath 'com.android.tools.build:gradle:1.5.0' 
//1.5.0这个很关键 上传到jitpack.io 就用这个版本 其他版本都是失败
    }
}
 
引用(先添加仓库     maven { url "https://jitpack.io" } )
implementation 'com.github.androidlibraries:ImageLoader:1.0.5'
--------------------------------------------------------------------------------------------
编译问题:
A、如果在AndroidStudio中就编译失败,先看看Project Structure > Project >
 Gradle version 4.1 Android Plugin Version 3.0.0 ,然后重新编译,如果下载不了包,
看看Settings > Build,Excution,Deployment > Gradle > 去掉勾选的Offine Work
 
B、编译出错但是控制台显示不详细
Settings > Build,Excution,Deployment > Compiler >  Command- Options 
填入 --stacktrace
 
C:
//Conflict with dependency 'com.android.support:support-annotations' in project ':app'.
 Resolved versions for app (26.1.0) and test app (27.1.1) differ.
 
修改 app/build.gradle
configurations.all {
    resolutionStrategy.force 'com.android.support:support-annotations:26.1.0'
}
--------------------------------------------------------------------------------------------
注:保证目录下有gradle/wrapper/xxxx文件夹
--------------------------------------------------------------------------------------------
git忽略文件配置(修改模块名文件夹)
 
 
--------------------------------------------------------------------------------------------
示例1工程:
 
GitHub地址 https://github.com/androidlibraries/jitpackiodemo  tag 1.0.3-adjustorder
 
示例2工程:(含有资源文件加载 不同module中有加载相同jar的处理):
 
GitHub地址 https://github.com/androidlibraries/PhotoSelector  tag 1.0.2
--------------------------------------------------------------------------------------------

有任何疑问或技术合作都可联系我

微信:767000122 【推荐】

QQ:596957738


相关评论

加我微信 596957738 (QQ同号)加我微信   QQ联系:596957738   地址:江苏省南京市雨花台区

苏公网安备32011402010305号

皖ICP备16019989号

江节胜的Gitee,江节胜的Git地址