如何编译 netty 源码并导入android studio

因为项目用到netty 相关jar包,排查问题想要加载netty 源码一起编译,我用到的是netty 4.0.14 final 版本;
下载 netty 相应版本的源码,这个很简单;
先提供几个地址:
maven下载地址,包括所有netty 版本:https://mvnrepository.com/artifact/io.netty/netty-all
4.0.15: http://central.maven.org/maven2/io/netty/netty-all/4.0.15.Final/
git 源码地址:https://github.com/netty/netty/tree/netty-4.0.14.Final

思路一:下载源码,自己下载依赖lib,构建编译环境,成功;
1. 从maven 地址下载,一般关心下面红色的3个,带sources的肯定就是源码了,但是里面没有相关依赖关系,这个可以看 .pom 文件;

  1. 将sources.jar 变为zip 文件,解压出来;
  2. 在你项目的 androidstudio project 中新建一个 java library;命名为 nettylib-4.0.14

  3. 将2中源码文件io/netty/ 拷贝到src/main/java/ 目录下

  4. studio sync,编译看报错的地方,或者根据 1 中地址里面的 pom 文件,找到netty 编译需要依赖的第三方 jar
    依赖jar 查询地址: http://www.findjar.com/index.x?
    最后nettylib-4.0.14 中的 build.gradle 配置如下:
    这里写图片描述

  5. 其中会遇到不少问题,我搞了很久,因为走了些弯路,如上图,我直接贴出来配置了,但是仍然有少数的文件会报错,因为和项目无关,所有直接删掉啦;
    编译可能会遇到各种错误,我就不一一贴出来了,大家有问题,请留言;

思路二:在github上下载源码,并且按照其设置来配置编译环境
git 源码地址:https://github.com/netty/netty/tree/netty-4.0.14.Final
编译环境搭建:http://netty.io/wiki/setting-up-development-environment.html
主要有eclipse +maven 和使用IDEA
1. 使用eclipse +maven,比较容易报错,因为eclipse 和maven 可能有不兼容的情况;
建议使用前最好,进入netty下载目录,
1。mvn install 在本地Repository中安装jar
2。mvn eclipse:eclipse 生成eclipse项目
然后就多了 .classpath 和 .project,可以直接导入eclipse

  1. 我2种都试过啦,eclipse 报错比较难搞定,最后使用的是IDEA;
    直接以maven 工程导入就行了,导入后,编译也ok
回答: 在Android Studio中使用Netty需要进行一些配置。首先,在底层的gradle文件中,需要添加对Netty的依赖。可以通过解析implementation的地址来获得正确的jar地址。具体的配置如下所示:\[1\] buildscript { repositories { google() jcenter() maven{ url 'http://central.maven.org/maven2/'} } dependencies { classpath 'com.android.tools.build:gradle:3.2.1' // 注意:不要在这里放置应用程序的依赖项,它们应该放在各个模块的build.gradle文件中 } } 接下来,在app模块的gradle文件中,也需要添加对Netty的依赖。具体的配置如下所示:\[2\] buildscript { repositories { google() jcenter() maven{ url 'http://central.maven.org/maven2/'} } dependencies { classpath 'com.android.tools.build:gradle:3.2.1' // 注意:不要在这里放置应用程序的依赖项,它们应该放在各个模块的build.gradle文件中 } } 最后,在启动项目时,可以在一个新的线程中启动Netty服务器。具体的代码如下所示:\[3\] new Thread(new Runnable() { @Override public void run() { try { new NettyServer().bind(8080); } catch (Exception e) { e.printStackTrace(); } } }).start(); 这样,你就可以在Android Studio中使用Netty来进行网络编程了。 #### 引用[.reference_title] - *1* [Android studio导入Netty(修改maven仓库Url)](https://blog.csdn.net/doublemark/article/details/84316619)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Android studio导入Netty](https://blog.csdn.net/qq_29443203/article/details/89140560)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [25.Android网络通讯-Netty(TCP服务端)](https://blog.csdn.net/zxc472504515/article/details/123392317)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值