如何自定义开源aar代码文件?

时间:2019-07-06 11:48:45

标签: android customization exoplayer aar exoplayer2.x

技术: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 ,所以我试图将这个文件夹从先前的依赖中排除,但无法这样做。

我进一步假设,包括该模块的完整源代码,而不是包含该问题,那么该问题将得到解决,但是我担心该模块的gradle依赖性,我是否也应该手动将其包含在我的build.gradle中? / p>

请让我知道实现此目标的最佳方法!

1 个答案:

答案 0 :(得分:0)

自定义Exoplayer2

A:新的aar

您应该派生存储库,将更改作为新的提交,然后构建并发布到Maven存储库。

B:包含为代码

或删除aar依赖项,将派生的Exoplayer2存储库作为git子模块添加到您的存储库中。进行更改并提交到fork并更新指向主存储库中子模块的指针

示例

您可以看一个正在运行的示例https://github.com/hannesa2/cwac-saferoom?organization=hannesa2&organization=hannesa2 在这里,我完全按照选项#1进行操作,并将已发布的lib更改为https://jitpack.io/#hannesa2/cwac-saferoom,在这里您可以看到如何包括新库