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

相关推荐
通玄31 分钟前
Jetpack Compose 入门系列(十):Paging 3 分页加载
android
hunterandroid37 分钟前
DataStore 工程化实践:迁移、并发更新与异常恢复
android·前端
柒星栈3 小时前
PHP 源码怎么加密防破解?三套方案实战指南
开发语言·php·android studio
程序员-珍3 小时前
报错下载android sdk失败
android·java
齊家治國平天下4 小时前
AAOS 电源管理深度解析:休眠/唤醒/功耗优化
android·车载系统·aaos·aosp·电源管理·休眠唤醒·carpowermanager
Xzaveir4 小时前
企业号码展示不可观测怎么办:状态机、拨测事件与异常回放
android·人工智能
2501_916007475 小时前
iOS和macOS应用程序性能分析和优化工具使用综合指南
android·macos·ios·小程序·uni-app·iphone·webview
黄林晴5 小时前
Nearby Connections 重大变更:不再自动开启 Wi-Fi / 蓝牙,适配指南
android
游戏开发爱好者85 小时前
iOS开发IDE有哪些 Xcode 和 快蝎 轻量替代方案
ide·vscode·ios·个人开发·xcode·swift·敏捷流程
恋猫de小郭5 小时前
Flutter 全新真 3D 实现,用 flutter_scene 能开发一个「我的世界」
android·前端·flutter