使用 android studio ,各位是如何成功导入或打开他人的开源项目并编译运行的?

2020-10-12 16:22:01 +08:00
 tctc4869

无论是什么样的编程开发,良好的 ide 能带给我良好的开发体验。之前开发 android 用过 eclipse,后来由于谷歌青睐 Idea,于是开始转向使用 android studio 。

使用起来感觉基本比 eclipse 要好,唯一的致命缺陷,就是导入别人的开源项目,尤其是那些没有提供通过 grade 的 implementation 方式导入的开源项目,就得手动打开文件选择对话框,选择开源项目的 build.gradle 并打开进行加载,这个期间可能会爆出各种错误,要能成功编译运行,根据百度的教程就得改一堆东西,改了还不一定能成功,就因为这个情况导致学习一些别人的开源项目,连编译运行连跑都跑不起来,很郁闷。

不知道各位有没有这种糟糕的使用经历,各位是如何打开别人的开源的 android 项目,并成功编译运行的?提供一下正确的打开方式

9387 次点击
所在节点    Android
26 条回复
nicocho
2020-10-12 16:29:53 +08:00
开 VPN,提示下载就下,主要还是 build.gradle 里的版本不匹配问题。
还有,建议 android studio 版本最好不要用最新的,
多整几次,习惯就简单了~
tctc4869
2020-10-12 16:32:33 +08:00
@nicocho 我说的,不是梯子的问题,是用 android studio 导入别人的开源项目的使用体验问题,我没用新版本,用的是 android studio 3.4
yingqi7
2020-10-12 16:35:28 +08:00
@tctc4869 感觉最大的问题是版本兼容和开源项目且胳膊少腿🐶
winterbells
2020-10-12 16:39:02 +08:00
没有 gradle 的项目是多老的。。
tctc4869
2020-10-12 16:42:18 +08:00
@yingqi7 你说的很对,我现在很郁闷,一些发布日期超过 2 年的开源项目,近年又没更新,打开就可能报错。
tctc4869
2020-10-12 16:43:45 +08:00
@winterbells 不一定,有 gradle 的开源项目,打开加载也有报错的可能。我最烦这种情况,而且改 grade 版本也不一定会有效果
winterbells
2020-10-12 17:59:40 +08:00
@tctc4869 有些直接下载的我会手动改 lib 版本
但一般都是在线看看关键地方,编译跑一个没有必要
Anarchy
2020-10-12 18:59:09 +08:00
导入项目首先不要提示升级 gradle 版本就点了,当然有的 gradle 版本太老就没办法了一点一点改问题了。
StonyGround
2020-10-12 21:34:33 +08:00
导入之前,先手动改 gradle 、sdk 版本,改成自己电脑上有的
shiguiyou
2020-10-12 21:55:41 +08:00
将项目文件夹下面的 build.gradle 里面的 google()改为阿里云的地址就行了,速度很快
Daming
2020-10-12 22:50:08 +08:00
千万不要手欠升级 gradle!!
"Android Gradle Plugin is ready to update." 无视掉
Hallujah
2020-10-12 22:51:05 +08:00
兴趣使然用过一阵,导入 GitHub 三五个项目,挨个改错误,百度下都是需要我改 gradle 版本的,改了也不行,改了好几处都不行,遂卸载。
tctc4869
2020-10-13 08:47:53 +08:00
@shiguiyou 不是墙的问题
chenjiajia9411
2020-10-13 09:08:36 +08:00
如果你说的是开源库的话,你可以自己打成 aar 包然后 implementation 进来,甚至直接用 jitpack 之类的。
即使没法打包,那也应该导入模块而不是导入 gradle 。
如果是完整项目的话,直接打开一般不会有什么问题,有问题跟着报错对应修改就行了。
tctc4869
2020-10-13 14:59:29 +08:00
@winterbells


@chenjiajia9411

一般有一些开源项目,用 android studio 打开,以“android”视角看待,会有一个 app 文件夹,和一个 library 文件夹,这个 library 文件夹的内容,会不会就是核心内容,但是如果要拿出来放到我的项目,要怎么弄?
tctc4869
2020-10-13 14:59:57 +08:00
@tctc4869 拿出来放到我的项目里,进行使用
chenjiajia9411
2020-10-13 15:09:58 +08:00
@tctc4869 #15 两种方式随你喜好:
1.项目打开之后直接 Make Project (或者你知道 module 是什么的话,Make module "library"更快),然后在项目根目录 /library/build/outputs/aar 下会出现一个 aar 文件,把它复制到你的项目的 lib 文件夹下,再以 implementation (name: 文件名不带扩展名, ext: 'aar')引入即可。
2.直接在你的项目里 File-New-Import Module,选择你要的项目里的 library 文件夹并改一个你需要的模块名,finish 之后再以 implementation project(':模块名')引入(并且要在 setting.gradle 内添加 include:':模块名')。
但是说真的,一般开源项目都会发布到 jcenter 之类的,再不济用 jitpack 自己打个包,要你自己编译的是个什么项目我想见识一下。(或者一般这种是作者还没有写好不方便发布版本,这种情况下你下下来应该也是不能用的)
winterbells
2020-10-13 15:19:19 +08:00
@tctc4869 和你新建一个模块原理是一样的


@chenjiajia9411 我们有很多都都是拷源码过来的。一般不更新了,或者更新慢,有些地方要加保护
tctc4869
2020-10-13 16:00:52 +08:00
@chenjiajia9411 我是 Yasea 吧,github 上有,就是国人开源的著名 rtmp 推流项目,算是比较老的开源项目,用我电脑上的 android studio 3.4 打开,改了 project 的 grade 版本到是能跑起来运行,我没有找到没有 implementation 导入方式或你所说的 arr 文件,
tctc4869
2020-10-13 16:01:35 +08:00
@tctc4869 开头说错了,是 Yasea 吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/714210

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX