添加codenameone-google-maps库后Codename One构建服务器编译失败
解决Codename One添加google-maps库后的Manifest合并错误
可能原因
codenameone-google-maps库自带的Android Manifest文件,与你的基础项目Manifest存在冲突,常见冲突场景包括:
- 重复声明的权限(如定位相关权限)
- Activity/Service等组件的属性冲突
- 项目与库的SDK版本(minSdkVersion、targetSdkVersion)不匹配
解决步骤
查看详细合并日志
执行以下Gradle命令获取完整的冲突详情,日志会明确指出具体的冲突条目:./gradlew processDebugMainManifest --stacktrace --info排除库的Manifest文件
如果确认是库的Manifest导致冲突,可在项目的build.gradle中排除该库的Manifest,避免自动合并:dependencies { implementation ('com.codenameone:codenameone-google-maps:你的版本号') { exclude manifest: 'AndroidManifest.xml' } }手动修复冲突
根据日志中的冲突信息,在项目的AndroidManifest.xml中使用tools命名空间解决冲突:- 若为权限重复:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:replace="android:name"/> - 若为组件属性冲突:
<activity android:name="com.google.android.gms.maps.MapActivity" tools:remove="android:theme"/>
注意需要在Manifest根标签添加命名空间:
xmlns:tools="http://schemas.android.com/tools"- 若为权限重复:
统一SDK版本
检查项目Module级build.gradle中的minSdkVersion和targetSdkVersion,确保与codenameone-google-maps库要求的版本一致,不一致则调整项目的对应参数。临时移除未使用的库
由于你尚未在代码中使用该库,可暂时移除依赖,先恢复正常构建,待需要使用时再处理Manifest冲突。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

