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生成,

相关推荐
滕州市燕猫虎计算机科技工作室个体工商户1 小时前
IDEA:Command line is too long
java·ide·intellij-idea
BoomHe1 小时前
Android Framework 文件应用移植到 AndroidStudio
android
传奇开心果编程3 小时前
【Jetpack Compose基础语法学与练】第8课 rememberSaveable,页面旋转/系统重建保留状态
android·学习·ui·kotlin·android jetpack
>Andre<3 小时前
UFS5.0标准中文全译·卷一:范围、术语与架构
android·linux·嵌入式硬件
事圆则缓4 小时前
Java 8 Lambda、Stream、Optional 与 Android 边界:从回调语法到运行时兼容
android·java
mmsx4 小时前
Android 地图十万要素不卡顿:空间网格 + 渐进式加载的移动端实践
android·大数据·opengl
Godikov6 小时前
Android 工业终端保活实战:前台服务 + 开机自启 + 更新自启的三重保障
android
字节暗面6 小时前
SO加固强度怎么量化?腾讯ACE与FairGuard静态分析实测
android·逆向
终端安全笔记7 小时前
描述文件、企业证书、MDM 不是三个名字,是三层
android·ios·智能手机
字节暗面8 小时前
一次游戏安全SO静态分析记录:腾讯ACE与FairGuard加固强度对比
android·逆向工程·游戏加固