Android Studio打开一个外部的Android app程序

背景描述:

由于Android Studio环境的差异,从网上或者Git下载的一个Android开源项目,用自己的Android Studio加载打开时经常遇到各种问题。那么,有没有什么方法或者步骤可以快速的将一个已存在的android项目导入到自己的Android Studio IDE,以继续开发调试呢?

下面就自己的经验整理一下,如何快速的用自己Android Studio打开别人的Android代码。

主要步骤是:

  1. 获取要导入的Android app代码
  2. Android Studio打开这个app代码
  3. 修改app Gradle配置为自己Android Studio Gradle
  4. 构建编译

注: 不要纠结我这里的Android Studio和之前《Android Studio IDE配置》配置中的Android Studio不一样,不影响举例子说明问题。

例子,将cameraview 这个开源代码放到自己的Android Studio进行编译调试

具体操作前,先铺垫下cameraview项目和我自己Android Studio有些差异,主要是以下:

  • 源代码使用的Gradle4.0.2
  • java 1.8版本比较旧,小于我本地java 21
  • sdk版本是26

这些差异,导致我本地Android Studio打开cameraview不能编译调试。接下来具体介绍操作,

1.获取cameraview源码

https://github.com/google/cameraview/tree/master 这里获取源码。

放到自己的Android Studio Project目录下,例如C:\AndroidProjects\cameraview-master。

2.Android Studio打开cameraview这个已存在project

File --> Open...打开Open File or Project窗口,如下

3.修改cameraview Gradle配置

由于自己Android Studio环境中没有Gradle4.0.2, cameraview Gradle sync会报 Could not install Gradle distribution from 'https://services.gradle.org/distributions/gradle-4.0.2-all.zip'.

所以,接下来修改cameraview gradle配置为自己Android Studio Gradle配置。

File --> Project Structure... 打开project配置窗口,如下

7.2是我Android Studio环境可用的版本, 这里根据自己Android Studio环境配置对应版本。

4.Gradle版本切换引入问题修改(cameraview gradle和我本地版本差别大,还需要一些额外修改)

出现上图问题是由于Gradle5.0及以后版本,compile被替换为implementation和api。所以需要将build.gradle中compile修改为implementation或者api,具体替换为implementation还是api根据依赖作用域来决定。如果希望库在子项目中也可用(即传递依赖),则使用api而不是implementation。具体修改继续看截图,

修改完上边两个build.gradle,继续gradle sync 报如下问题,

出现这个问题是cameraview原来用的java1.8版本,我本地java11。需要把cameraview使用的java版本改成java11, 如下

至此,应该可以成功sync了, 如下

5.构建

Make project或者Ctrl+F9, 对cameraview进行编译,编译成功会在cameraview路径下会有apk生成,

相关推荐
lw向北.5 分钟前
Qt For Android之环境搭建(Qt 5.12.11 Qt下载SDK的处理方案)
android·开发语言·qt
不爱学习的啊Biao13 分钟前
【13】MySQL如何选择合适的索引?
android·数据库·mysql
乐闻x15 分钟前
VSCode 插件开发实战(九): 不同插件之间如何通信
ide·vscode·编辑器
乐闻x19 分钟前
VSCode 插件开发实战(十): 环境变量Env设置与管理
ide·vscode·编辑器
jieshenai39 分钟前
使用 VSCode 学习与实践 LaTeX:从插件安装到排版技巧
ide·vscode·学习
Clockwiseee40 分钟前
PHP伪协议总结
android·开发语言·php
tanghongchang1234 小时前
Mac Android studio 升级LadyBug 版本,所产生的bug
macos·android studio·ladybug
mmsx7 小时前
android sqlite 数据库简单封装示例(java)
android·java·数据库
众拾达人10 小时前
Android自动化测试实战 Java篇 主流工具 框架 脚本
android·java·开发语言
吃着火锅x唱着歌11 小时前
PHP7内核剖析 学习笔记 第四章 内存管理(1)
android·笔记·学习