将Unity IAP从1.23.5更新到2.2.4时发生构建错误,Manifest合并失败



看起来Unity IAP从使用Google Play Billing 3.0.0改为3.0.1,现在我不能再构建APK了。

当我尝试为android构建APK时,我得到了这个错误:

* What went wrong:
Execution failed for task ':launcher:processDebugManifest'.
Manifest merger failed : Attribute meta-data#com.google.android.play.billingclient.version@value value=(3.0.1) from [:billing-3.0.1:] AndroidManifest.xml:15:13-34
is also present at [:GooglePlayBilling:] AndroidManifest.xml:15:13-34 value=(3.0.0).
Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml:13:9-15:37 to override.

我尝试添加"tools.replace=";android:value就像建议说的那样,但它仍然不起作用,我不知道我做得对不对。我的自定义AndroidManifest(它是通过在项目设置>播放器>构建中检查"自定义主清单"创建的(看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="[packagename]" android:versionCode="1" android:versionName="1.0">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application android:label="@string/app_name" android:icon="@drawable/app_icon">
<!-- The MessagingUnityPlayerActivity is a class that extends
UnityPlayerActivity to work around a known issue when receiving
notification data payloads in the background. -->
<activity android:name="com.google.firebase.MessagingUnityPlayerActivity" android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true" />
<meta-data
tools:replace="android:value"
android:name="com.google.android.play.billingclient.version"
android:value="3.0.1" />
</activity>
<service android:name="com.google.firebase.messaging.MessageForwardingService" android:exported="false" />
<service android:name="com.google.android.gms.analytics.CampaignTrackingService" />
<receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
android:exported="true" >
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
</application>
</manifest>

在更新Unity IAP之前,我可以在没有错误的情况下成功构建。我应该如何解决这个问题?我使用的是Unity 2019.4.8f1。我从软件包管理器安装了Unity IAP。这是资产链接:https://assetstore.unity.com/packages/add-ons/services/billing/unity-iap-68207

我想明白了。有2.aar文件都与Google Billing Library有关,导致了冲突。错误消息中提到了他们的名字(方括号中[:GooglePlayBillion:](

Assets\Plugins\UnityPurchasing\Bin\Android\billing-3.0.1aar

软件包/com.google.play.billing/Runtime/Plugins/GooglePlayBilling.aar

我删除了billing-3.0.1aar文件,并将Google Play billing Library更新为3.1.0,现在它可以工作了。

最新更新