android - 将 AOSP 项目导出到 Android Studio
问题描述
我正在尝试使用 Android Studio 构建 Android 默认消息应用程序的增强版本,其 AOSP 源代码可以在以下位置找到:
https://android.googlesource.com/platform/packages/apps/Messaging/
我怎样才能将此 AOSP 脚本转换为 Gradle 构建?我尝试按照他们在此类文档中提供的说明进行操作:
https://android.googlesource.com/platform/development/+/master/tools/idegen/README
同时使用 Linux 和 Windows,但我似乎从未获得 IDEGen 包。当我在 Eclipse 中尝试它时,正如一些消息来源所建议的那样,我收到了关于构建路径的难以解决的抱怨。这归因于 IDE 中的一些烦人的错误。
从我在 Quora 和其他地方看到的各种其他问题来看,在过去的十年里,很多人都在为这个问题而苦苦挣扎。
有没有直接的解决方案?也许有人可以推荐一个值得信赖的工具来将 AOSP 转换为 Android 版本吗?
解决方案
idegen是生成项目文件(.ipr)的工具,以便您可以在 IntelliJ 中打开整个 AOSP。然后,您可以导航和编辑所需模块的文件。
要仅构建一个应用程序,您可以使用mmm packages/apps/Messaging
.
这是官方的方式,以及我们使用操作系统的方式。
没有工具可以将单个模块导出到 Android Studio,因为这些模块通常也依赖于其他模块,并且经常使用非公共 API(@hide 注释的方法和未在官方 SDK 中导出的类) .
做到这一点并非不可能。只是没有任何自动导入可以为您完成所有工作,并且需要做一些工作。一些建议:
- 手动导入类和资源(将 src 和 res 文件夹复制到一个空的 Android Studio 文件夹)
- 检查 Android.mk 的依赖项,通过 gradle 中的标准方式添加您可以添加的内容。否则,您必须手动将它们添加为库 ( .jar/.so )。
- 如果由于某些类或包不是官方 SDK 的一部分而导致找不到某些类或包的错误,请参阅此内容。通常很难像这样在树外构建它们。这可能对一些参考有所帮助https://github.com/anggrayudi/android-hidden-api。
第一种方法简单易行。导入的方式会很麻烦,但是做了之后,开发起来就容易多了。
推荐阅读
- python - 使用日期查找器将字符串转换为日期
- reactjs - React-Router-Dom 6+ 抛出尝试导入错误:“withRouter”未从“react-router-dom”导出
- sqlite - SQLITE 查询 AVG 子选择/加入
- html - 隐藏 CSS 动画的内容溢出
- javascript - 无法执行 .map whithin 功能
- php - 如何使路由上使用的中间件可以在 Laravel 的测试中工作
- ios - Firebase App Distribution 不显示我所有可用的 IOS 应用程序
- spring - 如何使我的第二个下拉列表依赖于 Springboot Thymeleaf 中的第一个下拉列表?
- postgresql - 更新 Postgres 目标中选定记录的问题 - Talend 7X Open studio
- java - MyBatis mapper 界面在 List of Maps 中保留列顺序