You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更新OneSignal UnityPackage后Android编译失败,求解决方案

解决OneSignal更新后Android编译失败的实操方案

兄弟,我之前踩过几乎一模一样的坑——更新OneSignal的unitypackage后,和UniWebView凑一起就把Android编译搞崩了,尤其是Unity5.6这个版本,兼容性问题特别多。给你几个亲测有效的排查方向,你挨个试试:

1. 先揪出Android Manifest的冲突问题

OneSignal和UniWebView都会自动往AndroidManifest.xml里加配置,更新后大概率出现重复声明:

  • 先去Unity项目的Assets/Plugins/Android文件夹找合并后的Manifest;如果没找到,先跑一次编译(哪怕失败),Unity会把临时生成的Manifest放到Temp/StagingArea里
  • 重点查这几个地方:
    • 重复的<uses-permission>权限,比如推送相关的com.google.android.c2dm.permission.RECEIVE
    • 重复的<activity>或<receiver>组件,比如OneSignal的NotificationOpenedReceiver和UniWebView的WebViewActivity
    • 重复的<meta-data>配置,比如Google Play Services的版本标签

2. 换掉老掉牙的Build Tools版本

你现在用的build-tools-23.0.1太老了,和Unity5.6的适配性很差:

  • 去Android SDK Manager里装build-tools-26.0.2(这是Unity5.6官方推荐的稳定版本),顺便把对应的Android SDK Platform 26也装上
  • 打开Unity的Edit > Preferences > External Tools,确认Android SDK路径正确,然后把Build Tools版本选成刚装的26.0.2

3. 彻底清理OneSignal的旧残留

更新unitypackage经常会留下旧文件引发冲突:

  • 直接删掉Assets/Plugins/Android/OneSignal整个文件夹
  • 重新导入最新的OneSignal unitypackage
  • 再检查Assets/Plugins下有没有重复的OneSignal相关.dll,比如旧版的OneSignal.dll或者OneSignalAndroid.dll,有的话一起删掉

4. 检查UniWebView的兼容性

UniWebView的部分版本和新版OneSignal天生不对付:

  • 把UniWebView更到Unity5.6对应的最新稳定版(UniWebView 4.x对Unity5.x的支持最好,别瞎更到5.x)
  • 打开UniWebView的设置面板,看看它的Manifest生成选项有没有和推送冲突的配置,比如是不是自动加了没必要的权限

5. 用极简项目排查根源

如果前面的方法都没用,就用排除法缩小范围:

  • 新建一个空的Unity5.6项目,只导入最新的OneSignal包,编译Android版本,看能不能正常跑
  • 如果没问题,再导入UniWebView编译,这样就能确定是不是两个插件的冲突

对了,你贴的aapt报错只给了开头,其实后面的具体错误信息(比如duplicate resource或者invalid manifest)才是关键,要是能把完整报错贴出来,能更快定位问题——比如如果是error: duplicate value for resource 'attr/fontFamily',那就是资源文件冲突,得合并对应的style文件。


内容的提问来源于stack exchange,提问作者Luciano P.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:20:48