【问题标题】:How to Customise Open source aar code files?如何自定义开源 aar 代码文件?
【发布时间】:2019-07-06 11:48:45
【问题描述】:

技术:Android

我需要自定义的 AAR: Exoplayer2

我做了什么: 在 build.gradle 中包含了 aar 依赖项,以及我想要自定义的文件,从源代码中取出它们,并将它们放入完全相同的文件夹结构中他们的 AAR,并对这些文件进行了必要的更改。

我卡在哪里:当我运行调试构建时,它工作正常,但是当我尝试发布构建时,它给了我以下错误。

(Can't read [com] (Can't read [google] (Can't read [android] (Can't read [exoplayer2] (Can't read [ext] (Can't read [ima] (Can't read [ImaAdsLoader$Builder.class] (Duplicate jar entry [com/google/android/exoplayer2/ext/ima/ImaAdsLoader$Builder.class])))))))))

以下是我的调试和发布构建配置:

release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), '../proguard-rules.txt'
            release {
                signingConfig signingConfigs.release
            }
        }
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), '../proguard-rules.txt'
            signingConfig signingConfigs.debug
        }

我试图解决的问题: 当我从那个特定的 exoplayer 模块源中取出一个完整的单个文件夹时,假设 xyz 所以我试图从 aar 依赖项中排除这个文件夹,但无法这样做。

此外,我假设包含该模块的完整源代码而不是包含该 aar 然后问题将得到解决,但我担心该模块的 gradle 依赖项,我是否应该手动将其包含在我的 build.gradle 中?

请告诉我实现这一目标的最佳方法!

【问题讨论】:

  • 当我理解正确的时候,你想自定义Exoplayer2
  • 正确。对于我的用例,我想在 exoplayer 代码中进行自定义。

标签: android customization exoplayer aar exoplayer2.x


【解决方案1】:

自定义Exoplayer2

A:新自己的aar

您应该 fork 存储库,将您的更改作为新提交并构建 + 发布到 maven 存储库。

B:包含为代码

或者删除 aar 依赖,将 forked Exoplayer2 repo 作为 git 子模块添加到你的 repo。进行更改并提交 fork 并更新指向主仓库中子模块的指针

示例

你可以看一个运行的例子https://github.com/hannesa2/cwac-saferoom?organization=hannesa2&organization=hannesa2 在这里,我完全做了选项 #1 并将更改后的 lib 发布为 https://jitpack.io/#hannesa2/cwac-saferoom 在这里你可以看到,如何包含你的新库

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    • 2020-01-27
    • 1970-01-01
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多