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

相关推荐
m0_748250937 小时前
支持最新 mysql9的workbench8.0.39 中文汉化教程来了
android
violin-wang9 小时前
Intellij IDEA如何查看当前文件的类
java·ide·intellij-idea
【 】4239 小时前
安卓7以上抓包证书安装
android·javascript·爬虫·网络爬虫
明似水9 小时前
高效管理Dart和Flutter多包项目:Melos工具全解析
android·前端·flutter
cs麦子10 小时前
Visual Studio(VS)没有显示垂直滚轮or垂直滚轮异常显示
ide·php·visual studio
l and11 小时前
Android LifecycleOwner 闪退,java 继承、多态特性!
android·java
神一样的老师11 小时前
海思的一站式集成环境Hispark Studio更新了
ide
谁把我睡的觉偷了xhxh13 小时前
MySQL视图索引操作
android·mysql
三天不学习13 小时前
SQL Server 数据库迁移到 MySQL 的完整指南
android·数据库·mysql
web1478621072314 小时前
万字详解 MySQL MGR 高可用集群搭建
android·mysql·adb