Android studio导入Netty(修改maven仓库Url)

最近在接手一个Android开发项目,要求手机作为热点,接入ARM设备,作为Server通过TCP/IP协议与下位机Socket通讯,简单通过Service实现了封装Socket函数并保持后台连接,但在收发数据时需要对接相应的协议,这一部分协议是由下位机决定的,里面包含了一些结构体Struct和联合体Union,而Java并没有结构体和联合体以及指针的概念。

咨询伙伴公司同事,说可以使用第三方库Netty。于是着手将Netty加到自己的项目中,第一步就遇到了麻烦。

1、在Android Studio中需要导入jar包,由于习惯了使用Gradle添加依赖,直接从

https://mvnrepository.com/artifact/io.netty/netty-all/4.1.31.Final

查看到Netty的Gradle脚本添加到Build.gradle里

implementation group: 'io.netty', name: 'netty-all', version: '4.1.31.Final'

发现直接添加并sync同步会报错,查看log是在jcenter和google里并没有这个包,再一顿搜索更改maven的默认url,发现好多博客写的不明不白。

于是简单记录一下,看到网站上包的url地址为

http://central.maven.org/maven2/io/netty/netty-all/4.1.31.Final/netty-all-4.1.31.Final.jar

可以确定maven仓库的地址为

http://central.maven.org/maven2/

而gradle可以通过解析implementation的地址来获得正确的jar地址,于是在底层的gradle里修改为

buildscript {

    repositories {
        google()
        jcenter()
        maven{ url 'http://central.maven.org/maven2/'}
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

}

并且在app/gradle里添加

implementation group: 'io.netty', name: 'netty-all', version: '4.1.31.Final'

再次sync同步,ok,正确无报错。

在程序里import一下

import io.netty.

可以直接tab提醒,问题解决。

回答: 在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 ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值