配置Jekins时,由于Jekins上gradle版本较低,而将本地项目的gradle版本由26.0.0变成24.2.0的相关配置

来源:互联网 发布:think in java pdf中文 编辑:程序博客网 时间:2024/05/18 18:00

给项目创建Jekins配置时,编译失败,原因是项目的gradle版本高于Jekins上的gradle版本,所以这里提供的方法是将本地项目的gradle版本降低的相关操作

1.gradle-wrapper.properties中,distributionUrl中的gradle版本由gradle-4.1-all.zip降为gradle-3.3-all.zip

2.Projectbuild.gradle中的dependencies的gradle版本由“3.0.0-beta5”降为“2.2.3”,并且把allprojects.repositories中的google()注释掉

3.config.gradle中androidSupportSdkVersion由26.0.0变成24.2.0(原因可能是Gradle版本降低以后,无法构建高版本的androidSupportVersion了,具体哪个版本是分界线尚不清楚)。其他版本仍然保留如下:

compileSdkVersion: 26

buildToolsVersion: “26.0.0”

minSdkVersion: 15

targetSdkVersion: 26

versionCode: 1

versionName: 1.0

4.app的build.gradle中,注释掉support-v4, 并添加对compile ‘com.android.support:support-fragment:26.0.0’的依赖,注掉了对androidTestCompile的依赖

5.将app和module中的implement或provide都改为compile,testImplementation改为testCompile

6.layout中的layout_weight无法用了,暂时只用数字替代





遇到的问题:

1.在引入com.android.support: support-v4(用于FragmentActivity)时,总是提示版本错误。(androidSupportSdkVersion版本是24.2.0)

解决:从android开发官网查询得知,24.2.0恰巧是个中间版本,下面是官网对Android Support Library Packages的v4 Support Libraries对24.2.0版本的一些注意事项。


Android Support Library 包含一些可以被包含在你应用中的library packages。每个库只支持特定范围的Android平台版本和features集

v4 Support Libraries:和其它库相比,这些v4库包含大量APIs集合,包括支持:应用组件、用户接口features、访问能力、数据处力、网络连接和编程的用途。

注: 在Support Library 24.2.0及之前的版本,只有一个v4 support library。为了提高效率,该v4库被分成了多个模块。为了向后兼容,如果你的Gradle脚本中列有support-v4,你的APK会包括v4所有的模块。但是,为了减小APK的大小,建议你只用列出你应用所需的特定模块。

v4 compat library模块:对一些框架APIs提供兼容包支持,例如Context.obtainDrawable()和View.performAccessibilityAction()。Gradle构建脚本对此库的依赖标识如下:com.android.support:support-compat:26.1.0

v4 core-utils library模块:提供了一些utility classes, 如AsyncTaskLoader 和PermissionChecker。Gradle构建脚本对此库的依赖标识如下:com.android.support:support-core-utils:26.1.0

v4 core-ui library模块:实现了一些UI相关组件,如ViewPager、NestedScrollView和ExploreByTouchHelper.Gradle构建脚本对此库的依赖标识如下:com.android.support:support-core-ui:26.1.0

v4 media-compat library模块:媒体框架的补丁部分,包括MediaBrowser和MediaSession。Gradle构建脚本对此库的依赖标识如下:com.android.support:support-media-compat:26.1.0

v4 fragment library模块:增加了对封装用户接口和fragments功能的支持,使应用能够提供大小屏设备适配的布局。这个模块依赖于compat,core-utils,core-ui和media-compat。注意:v13 support library也提供了一个FragmentCompat。v4 的Fragment是一个可以提供bug修复功能的独立类(该功能已经被v4 Fragment类添加到了最新的platform版本,但是v13的FragmentCompat类提供了实现Fragment类的框架的兼容性插件(chims)。Gradle构建脚本对此库的依赖标识如下:com.android.support:support-fragment:26.1.0

Multidex Support Library模块:此库支持以多个Dalvik可执行(DEX)文件来构建apps。对应哪些引用超过65536个方法的apps就需要用multidex的配置。想了解更多关于multidex的用法,可以参考链接Building Apps with Over 64K Methods.Gradle构建脚本对此库的依赖标识如下:com.android.support:multidex:1.0.0


2.出现的bug:10-12 14:17:03.478 9520-9520/cn.linkface.youbangbutler E/AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.animation.AnimatorCompatHelper" on path: DexPathList[[zip file "/data/app/cn.linkface.youbangbutler-2/base.apk"],nativeLibraryDirectories=[/data/app/cn.linkface.youbangbutler-2/lib/x86, /system/lib, /vendor/lib]]

  解决:

configurations.all {

    resolutionStrategy.eachDependency {DependencyResolveDetails details ->

        def requested = details.requested

        if (requested.group =='com.android.support') {

            if (!requested.name.startsWith("multidex")) {

               details.useVersion '25.3.0'

            }

        }

    }

}







原创粉丝点击