repo sync 更新源码 android-12.0.0_r34, fatal: 不能重置索引文件至版本 ‘v2.27^0‘。

简介: 本文描述了在更新AOSP 12源码时遇到的repo同步错误,并提供了通过手动git pull更新repo工具来解决这一问题的方法。

1. 问题描述

AOSP 12的源码两月没有更新了,今日对其做repo sync动作,并切换到新的版本android-12.0.0_r34,结果遇到错误

  • fatal: 不能重置索引文件至版本 ‘v2.27^0’

2. 错误日志

2.1 操作过程

szhou@bc04:~/aosp/aosp$ repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-12.0.0_r34
.repo/manifests/: discarding 15 commits

Your identity is: mgr244 <zhoushang@casirisvision.com>
If you want to change this, please re-run 'repo init' with --config-name

repo has been initialized in /home/szhou/aosp/aosp
szhou@bc04:~/aosp/aosp$ repo sync -j4
Fetching: 100% (1040/1040), done in 23m23.215s
Garbage collecting: 100% (1040/1040), done in 3.679s
info: A new version of repo is available
warning: repo is not tracking a remote branch, so it will not receive updates
repo reset: error: Entry 'command.py' not uptodate. Cannot merge.
fatal: 不能重置索引文件至版本 'v2.27^0'。

szhou@bc04:~/aosp/aosp$

2.2 错误分析

  • 从如下提示可知,repo已经存在一个新的版本,但因为repo没有" tracking a remote branch" 所以不会被更新
info: A new version of repo is available
warning: repo is not tracking a remote branch, so it will not receive updates
repo reset: error: Entry 'command.py' not uptodate. Cannot merge.
fatal: 不能重置索引文件至版本 'v2.27^0'

3.解决办法

  • 如上,既然repo不能在repo sync时候被更新,那我们就自己git pull一下看看
  • 操作过程如下, 进入 .repo/repo/目录后,后执行git pull命令更新repo
szhou@bc04:~/aosp/aosp$ cd .repo/repo/
szhou@bc04:~/aosp/aosp/.repo/repo$ ls -al
总用量 860
drwxr-xr-x 11 szhou szhou   4096  2月 22 17:21 .
drwxr-xr-x  7 szhou szhou   4096  7月 20 19:21 ..
-rw-r--r--  1 szhou szhou   4438  2月  1  2021 color.py
-rw-r--r--  1 szhou szhou   6056  3月  1  2020 color.pyc
-rw-r--r--  1 szhou szhou  12769  2月 22 17:21 command.py
……  省略 …… 
szhou@bc04:~/aosp/aosp/.repo/repo$ git pull
提示:不建议在没有为偏离分支指定合并策略时执行 pull 操作。 您可以在执行下一次
提示:pull 操作之前执行下面一条命令来抑制本消息:
提示:
提示:  git config pull.rebase false  # 合并(缺省策略)
提示:  git config pull.rebase true   # 变基
提示:  git config pull.ff only       # 仅快进
提示:
提示:您可以将 "git config" 替换为 "git config --global" 以便为所有仓库设置
提示:缺省的配置项。您也可以在每次执行 pull 命令时添加 --rebase、--no-rebase,
提示:或者 --ff-only 参数覆盖缺省设置。
来自 https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
   68d6963..a8cf575  stable     -> origin/stable
更新 8e91248..a8cf575
Fast-forward
 command.py                         |  99 +++++++++++++---
…… 省略  ……
 create mode 100644 tests/test_subcmds_sync.py
szhou@bc04:~/aosp/aosp/.repo/repo$

4. 最后

更新完repo之后,继续用repo sync命令,即可继续同步代码

szhou@bc04:~/aosp/aosp$ repo sync
相关文章
|
2月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
93 1
|
2月前
|
开发工具 uml git
AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82
本文分享了下载AOSP源码的方法,包括如何使用repo工具和处理常见的repo sync错误,以及配置Python环境以确保顺利同步特定版本的AOSP代码。
170 0
AOSP源码下载方法,解决repo sync错误:android-13.0.0_r82
|
2月前
|
Android开发
Android Studio: 解决Gradle sync failed 错误
本文介绍了解决Android Studio中出现的Gradle同步失败错误的步骤,包括从`gradle-wrapper.properties`文件中获取Gradle的下载链接,手动下载Gradle压缩包,并替换默认下载路径中的临时文件,然后重新触发Android Studio的"Try Again"来完成同步。
422 0
Android Studio: 解决Gradle sync failed 错误
|
2月前
|
Java Android开发 芯片
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
本文介绍了如何将基于全志H713芯片的AOSP Android源码导入Android Studio以解决编译和编码问题,通过操作步骤的详细说明,展示了在Android Studio中利用代码提示和补全功能快速定位并修复编译错误的方法。
51 0
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
|
2月前
|
存储 监控 数据库
Android经典实战之OkDownload的文件分段下载及合成原理
本文介绍了 OkDownload,一个高效的 Android 下载引擎,支持多线程下载、断点续传等功能。文章详细描述了文件分段下载及合成原理,包括任务创建、断点续传、并行下载等步骤,并展示了如何通过多种机制保证下载的稳定性和完整性。
37 0
|
2月前
|
开发工具 Android开发 git
全志H713 Android 11 :给AOSP源码,新增一个Product
本文介绍了在全志H713 Android 11平台上新增名为myboard的产品的步骤,包括创建新的device目录、编辑配置文件、新增内核配置、记录差异列表以及编译kernel和Android系统的详细过程。
42 0
|
2月前
|
Ubuntu 开发工具 Android开发
Repo下载、编译AOSP源码:基于Ubuntu 21.04,android-12.1.0_r27
文章记录了作者在Ubuntu 21.04服务器上配置环境、下载并编译基于Android 12.1.0_r27版本的AOSP源码的过程,包括解决编译过程中遇到的问题和错误处理方法。
60 0
|
4月前
|
缓存 Android开发 Kotlin
【安卓app开发】kotlin Jetpack Compose框架 | 先用OKhttp下载远程音频文件再使用ExoPlayer播放
使用 Kotlin 的 Jetpack Compose 开发安卓应用时,可以结合 OkHttp 下载远程音频文件和 ExoPlayer 进行播放。在 `build.gradle` 添加相关依赖后,示例代码展示了如何下载音频并用 ExoPlayer 播放。代码包括添加依赖、下载文件、播放文件及简单的 Compose UI。注意,示例未包含完整错误处理和资源释放,实际应用需补充这些内容。
|
4月前
|
存储 Android开发 Kotlin
开发安卓app OKhttp下载后使用MediaPlayer播放
在Android Jetpack Compose应用程序中,要使用OkHttp下载远程音频文件并在本地播放,你需要完成以下几个步骤: 1. **添加依赖**:确保`build.gradle`文件包含OkHttp和Jetpack Compose的相关依赖。 2. **下载逻辑**:创建一个`suspend`函数,使用OkHttp发起网络请求下载音频文件到本地。 3. **播放逻辑**:利用`MediaPlayer`管理音频播放状态。 4. **Compose UI**:构建用户界面,包含下载和播放音频的按钮。