在 Android N 如何编译 android-support 等包并依赖到项目工程中

本文介绍了在Android N环境下,如何编译修改过的android-support源码,并解决编译为jar包的问题。通过关闭jack编译方式,使用mma命令编译,以及处理在Android Studio中导入时的依赖冲突。详细步骤包括分析依赖冲突、排除冲突模块等。
摘要由CSDN通过智能技术生成

背景:
       之前在修改项目原生设置 Settings.apk 的问题时,曾经想修改 support-v7 包中的 RecyclerView.java 文件,但是基于Android N 的环境下,修改后的代码一直没有编入到 Settings.apk。后来从另外的一个角度对问题进行了修改,避开了修改 android-support 包的雷区。最近在学习 support-v4 包中 ViewPager.java 的触摸事件传递以及滑动冲突解决方案时,想着增加打印来增强对流程的理解,因此还是需要探究 android-support 的资源如何导入到项目工程。在此过程中遇到了一系列的问题,希望我的解决方案能够帮助到大家。
 
结论:

  1. Android N 环境使用 jack 编译方式,是不能编译出 jar 包的,这个直接导致了修改 android-support 源码后,修改后的代码没有编入项目工程。解决方案:我们修改对应 jar 包源码的 Android.mk 文件,临时将 jack 的编译方式关掉即可。
    linhongbo@ubuntu:~/sdk/androidN/frameworks/support$ git diff v4/Android.mk
    diff --git a/v4/Android.mk b/v4/Android.mk
    index 1e8adad..248f5ab 100644
    --- a/v4/Android.mk
    +++ b/v4/Android.mk
    @@ -264,6 +264,7 @@ support_module_src_files += $(LOCAL_SRC_FILES)
     
     # Here is the final static library that apps can link against.
     include $(CLEAR_VARS)
     # 关闭 jack 编译
    +LOCAL_JACK_ENABLED := disabled 
     LOCAL_USE_AAPT2 := true
     # 在最终生成 jar 包的配置处关闭 jack 即可
     LOCAL_MODULE := android-support-v4
     LOCAL_SDK_VERSION := 4
    

     

  2. 修改完 Android.mk 文件后,就可以直接进行编译了,我是使用 mma 命令进行编译,此时如无意外,可以看到编译出了 javalib.ja
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值