Android / Cyanogenmod构建:从roomservice.xml中删除项目

时间:2015-02-06 21:17:11

标签: android manifest building cyanogenmod repo

我想从通过CM中的brunching生成的roomservice.xml中删除与设备相关的项目,并自己添加一个不同的repo。 理论上(在我的localmanifest,名为mint.xml),我应该只需要 <remove-project name="Cyanogenmod/...。 但是repo sync告诉我

  

remove-project元素指定不存在的项目

这是因为我的本地清单在 roomservice.xml之前来源吗?

这个问题与这个有点相关: trouble-with-cyanogenmod-local-manifest

其他来源: CM Wiki about removing projects

您是否知道如何在 roomservice.xml之后获取自己的清单或以某种方式实现相同的目标?

感谢您的回答。

1 个答案:

答案 0 :(得分:3)

如Repo的manifest_xml.py所示,

LOCAL_MANIFESTS_DIR_NAME = 'local_manifests'
...
class XmlManifest(object):
  ...
  def _Load(self):
      ...
      local_dir = os.path.abspath(os.path.join(self.repodir, LOCAL_MANIFESTS_DIR_NAME))
      try:
        for local_file in sorted(os.listdir(local_dir)):
          if local_file.endswith('.xml'):
            local = os.path.join(local_dir, local_file)
            nodes.append(self._ParseManifestXml(local, self.repodir))
      except OSError:
        pass

本地清单文件按字母顺序读取。因此,您的文件mint.xml在roomservice.xml之前加载,因此当您尝试删除在roomservice.xml中定义的项目时,它实际上并不存在。将您的文件重命名为在roomservice.xml之后排序的内容。