技术: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>
请让我知道实现此目标的最佳方法!
答案 0 :(得分:0)
自定义Exoplayer2
您应该派生存储库,将更改作为新的提交,然后构建并发布到Maven存储库。
或删除aar依赖项,将派生的Exoplayer2
存储库作为git子模块添加到您的存储库中。进行更改并提交到fork并更新指向主存储库中子模块的指针
您可以看一个正在运行的示例https://github.com/hannesa2/cwac-saferoom?organization=hannesa2&organization=hannesa2 在这里,我完全按照选项#1进行操作,并将已发布的lib更改为https://jitpack.io/#hannesa2/cwac-saferoom,在这里您可以看到如何包括新库