Android 使用git子模块的多个支持库冲突

Android 使用git子模块的多个支持库冲突,android,git,github,egit,git-submodules,Android,Git,Github,Egit,Git Submodules,因此,我有一个项目,其中有多个库作为子模块连接,这意味着我无法提交它们 每个库都已经包含一个android支持库,这显然会导致一个错误 Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define... 在尝试构建apk时 当然,我可以从库项目中删除重复的支持库,但我无法提交这些更改,因此使用我与Jenkins的repo等等 现在我只看到一种选择——fork库,从中删除冲突的jar,并使

因此,我有一个项目,其中有多个库作为子模块连接,这意味着我无法提交它们

每个库都已经包含一个android支持库,这显然会导致一个错误

Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define...
在尝试构建apk时

当然,我可以从库项目中删除重复的支持库,但我无法提交这些更改,因此使用我与Jenkins的repo等等

现在我只看到一种选择——fork库,从中删除冲突的jar,并使用fork版本作为子模块。但老实说,我想避免它

那么,有没有办法用多个支持库构建apk,或者在克隆git子模块时将这些库从git子模块中排除?

如果您可以(在脚本中)自动删除这些重复的库引用,那么您可以向这些子模块repos注册一个
涂抹
脚本,该脚本在签出时,删除那些重复的

(来自:部分“关键字扩展”)

每次更新这些子模块SHA1时,该污迹脚本都会自动清理该repo

我在子模块上通过直接在
parentRepo/.git/module/asubmodule/info/attribute
中复制所需的过滤器来实现这一点
见:

与:

这将要求:

  • 签出时脚本
    fileExpandPath\u替换
    (通过“
    git签出头--/path/to/submodule
    ”上方的行触发该脚本)
  • 签入时脚本
    fileExpandPath\u还原
    (您可能不需要该脚本,因为您不会在子模块中执行任何提交操作)
如果您可以(在脚本中)自动删除那些重复的库引用,那么您可以向这些子模块repos注册一个
涂抹
脚本,该脚本将在签出时删除那些重复的库引用

(来自:部分“关键字扩展”)

每次更新这些子模块SHA1时,该污迹脚本都会自动清理该repo

我在子模块上通过直接在
parentRepo/.git/module/asubmodule/info/attribute
中复制所需的过滤器来实现这一点
见:

与:

这将要求:

  • 签出时脚本
    fileExpandPath\u替换
    (通过“
    git签出头--/path/to/submodule
    ”上方的行触发该脚本)
  • 签入时脚本
    fileExpandPath\u还原
    (您可能不需要该脚本,因为您不会在子模块中执行任何提交操作)

哦,好吧,我希望有另一种方法:)至于现在,我决定用替换的冲突jar来维护库的分叉版本。哦,好吧,我希望有另一种方法:)至于现在,我决定用替换的冲突jar来维护库的分叉版本。
githubdir="${H}/.git/modules/gitlab"
if [[ ! -e "${githubdir}/info/attributes" ]]; then
  cp "${gtl}/config.gitlab" "${githubdir}/config"
  cp "${gtl}/attributes.gitlab" "${githubdir}/info/attributes"
  xxgit=1 git --work-tree="${github}" --git-dir="${githubdir}" checkout HEAD -- "${github}"
*.rb filter=fileExpandPath
*.rake filter=fileExpandPath