无法使用 facebook sdk 为 android 构建和 google 在 Unity 5.3.4 中一起玩

Unable to build for android with facebook sdk and google play together in Unity 5.3.4

我在我的项目中使用 facebook-unity-sdk-7.3.0 和 GooglePlayGamesPlugin-0.9.32。它不允许我为 android 构建并且失败并出现错误“无法将 类 转换为 dex 格式。有关详细信息,请参阅控制台。'。当我从我的项目中删除任何 sdk fb 或 googleplay 时,它又开始工作了。

控制台错误

CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details. /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java -Xmx2048M -Dcom.android.sdkmanager.toolsdir="/Users/shoaib/Library/Android/sdk/tools" -Dfile.encoding=UTF8 -jar "/Applications/Unity/PlaybackEngines/AndroidPlayer/Tools/sdktools.jar"

Error building Player: CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details. /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java -Xmx2048M -Dcom.android.sdkmanager.toolsdir="/Users/shoaib/Library/Android/sdk/tools" -Dfile.encoding=UTF8 -jar "/Applications/Unity/PlaybackEngines/AndroidPlayer/Tools/sdktools.jar"

我做了一些研究,发现这个问题与项目中的两个相同的 jar 文件有关,但是在我的项目中,我找不到任何重复的 jar 文件。

已编辑 为了重现这个问题,我做了一个示例项目,可以从这里下载 http://wikisend.com/download/966354/LeaderboardTest.zip

'Unable to convert classes into dex format. See the Console for details.'.

当 class/dll 在项目中出现两次时,就会出现这个。

更新框架时经常出现,如果没有正确删除旧版本,那么某些类可能会出现两次。

由于它们存储在插件文件夹中,Unity 不会检查它们,它们只会出现在构建过程中。

最好是删除与这两个插件相关的所有内容并重新导入它们。在同一个应用程序中使用 UniWebView 和 Vuforia 时,这为我解决了这个问题。其中一个没有正确更新。

前往 Assets->FacebookSDK->Plugins->Android->libs 然后 delete android-支持-v4.jar。那里有冲突,因为它包含来自另一个 jar 或 aar 文件的 class。

就我而言,我可以通过删除 Android SDK Build-Tools 版本 24 并将其替换为版本 23 来解决此问题。

也许来不及回答了,我也面临同样的问题,我创建了一个插件,这个插件包含 Facebook SDK+Admob+unityads +unity IAP,它们一起工作,我在 unity 中创建了这个插件5.6.0,但我已经检查过了,它在 unity 2017 中也能正常工作,有一个场景 "DemoScene",打开它一切都已实现,unity ads,admob,facebook share with callback,unityIAP。

注意:在导入插件之前,请删除所有旧插件,同时转到服务并打开统一广告。 http://www.mediafire.com/file/ccvj7ixir8ive25/FB_ADMOB_UnityIAP_UnityAds_Plugin_Hameed_Ullah_jan.unitypackage