Android Studio打开一个外部的Android app程序
背景描述:
由于Android Studio环境的差异,从网上或者Git下载的一个Android开源项目,用自己的Android Studio加载打开时经常遇到各种问题。那么,有没有什么方法或者步骤可以快速的将一个已存在的android项目导入到自己的Android Studio IDE,以继续开发调试呢?
下面就自己的经验整理一下,如何快速的用自己Android Studio打开别人的Android代码。
主要步骤是:
- 获取要导入的Android app代码
- Android Studio打开这个app代码
- 修改app Gradle配置为自己Android Studio Gradle
- 构建编译
注: 不要纠结我这里的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生成,