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

相关推荐
qq_4228286219 小时前
android图形学之SurfaceControl和Surface的关系 五
android·开发语言·python
tongyiixiaohuang20 小时前
轻易云平台助力快麦数据入库MySQL
android·数据库·mysql
NiceCloud喜云21 小时前
IntelliJ IDEA 保姆级安装 + ClaudeAPI 配置教程
java·开发语言·前端·ide·chrome·docker·intellij-idea
JohnnyDeng941 天前
Android 包体积优化:R8/ProGuard 深度配置
android
qq_452396231 天前
第六篇:《JMeter逻辑控制器:循环、条件和交替执行》
android·java·jmeter
cwzqf1 天前
Jectpack Compose项目组件代码分享(1):分页加载组件
android
@北海怪兽1 天前
SQL常见函数整理 _ STRING_AGG()
android·数据库·sql
zmsofts1 天前
IntelliJ IDEA)因为内存不足而崩溃
java·ide·intellij-idea
鹏晨互联1 天前
【Compose vs XML:边框内外间距的实现对比】
android·xml
Android系统攻城狮1 天前
Android tinyalsa深度解析之pcm_plugin_write调用流程与实战(一百七十九)
android·pcm·tinyalsa·android16·音频进阶·android音频进阶