Android技术知识Android开发经验谈Android开发

解决 Gradle "manifest requires a p

2023-09-11  本文已影响0人  十个雨点

最近给一个library升级Gradle到7.5,agp到7.4.1,导致了编译题中的报错,参照 stackoverflow 的说法,在library里写定manifestPlaceholders后,再App工程里还可以覆盖。

image.png

然而实际测试结果是:在打出来的aar里已经不包含manifestPlaceholder了,所以APP工程里并不能覆盖。

经过2天的不懈努力,终于想到一个有趣的解决方案,如下:

1、在项目根目录下新建 manifestPlaceholder_config.gradle ,内容如下:

allprojects {
    afterEvaluate {
        if (getPlugins().hasPlugin('android') ||
                getPlugins().hasPlugin('android-library')) {
            android {
                defaultConfig {
                    // 原样替换,不这样做的话,打包通不过
                    manifestPlaceholders = [
                            JPUSH_PKGNAME   : '${JPUSH_PKGNAME}',
                            JPUSH_APPKEY    : '${JPUSH_APPKEY}',
                            JPUSH_CHANNEL   : '${JPUSH_CHANNEL}',
                            GETUI_APP_ID    : '${GETUI_APP_ID}',
                            PACKAGE_NAME    : '${PACKAGE_NAME}',
                            PUSH_PROCESS    : '${PUSH_PROCESS}',
                            MI_PUSH_APPID   : '${MI_PUSH_APPID}',
                            MI_PUSH_APPKEY  : '${MI_PUSH_APPKEY}',
                            OPPO_PUSH_APPKEY: '${OPPO_PUSH_APPKEY}',
                            OPPO_PUSH_SECRET: '${OPPO_PUSH_SECRET}',
                            VIVO_PUSH_APPID : '${VIVO_PUSH_APPID}',
                            VIVO_PUSH_APPKEY: '${VIVO_PUSH_APPKEY}',
                            HONOR_PUSH_APPID: '${HONOR_PUSH_APPID}',
                    ]
                }
            }
        }
    }
}

2、然后在跟目录的build.gradle中增加:

apply from: 'manifestPlaceholder_config.gradle'

主打就是一个:替换了,但是又完全没替换。

上一篇下一篇

猜你喜欢

热点阅读