其他分享
首页 > 其他分享> > android-添加play-services-maps依赖关系自动添加glEsVersion 2.0要求

android-添加play-services-maps依赖关系自动添加glEsVersion 2.0要求

作者:互联网

我想与Google Play服务地图模块集成.

由于地图清单声明:

<uses-feature    
    android:glEsVersion="0x00020000"
    android:required="true"/>

Gradle的manifest merger将此块添加到生成的清单中,从而使我的应用程序在运行OpenGL 1.0的设备上不受支持,但是我的地图功能不是必需的,我确实希望支持这些设备.

我尝试将以下其中一项添加到自己的清单中:

<uses-feature
    android:glEsVersion="0x00010000"
    android:required="false" />

要么

<uses-feature
    android:glEsVersion="0x00010000"
    android:required="false"
    tools:replace="glEsVersion,required" />

要么

<uses-feature
    android:glEsVersion="0x00010000"
    android:required="false"
    tools:node="remove"
    tools:replace="glEsVersion,required"/>

但是没有任何效果,它要么自动选择一个最大值(2.0),要么将两个块都添加到结果清单中,仍然使我的应用程序要求2.0

解决方法:

我可以使用build.gradle hacks来解决此问题,方法是手动覆盖合并的清单源.

但是我更喜欢使用Gradle的清单合并工具(tools:node,tools:replace等)的更优雅的方式.

我从AndroidManifest中删除了glEsVersion,并将以下内容添加到我的build.gradle中:

    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            output.processManifest.doLast {
                def manifestOutFile = output.processManifest.manifestOutputFile
                def newFileContents = manifestOutFile.getText('UTF-8').replace("android:glEsVersion=\"0x00020000\"", "android:glEsVersion=\"0x00010000\"")
                manifestOutFile.write(newFileContents, 'UTF-8')
            }    
        }
    }

标签:google-play-services,android-gradle,google-maps,android-manifest,android
来源: https://codeday.me/bug/20191027/1943548.html