【问题标题】:Unable to build for android with facebook sdk and google play together in Unity 5.3.4无法在 Unity 5.3.4 中使用 facebook sdk 和 google play 为 android 构建
【发布时间】:2016-07-29 05:44:08
【问题描述】:

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

控制台错误

CommandInvokationFailure:无法将类转换为 dex 格式。 有关详细信息,请参阅控制台。 /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"

构建播放器时出错:CommandInvokationFailure:无法转换 类转换为 dex 格式。有关详细信息,请参阅控制台。 /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

【问题讨论】:

  • 你在使用除了 facebook sdk 和 google play 之外的任何其他插件吗?
  • 在错误消息的更下方,它列出了重叠的资源和类。这将有助于发现问题。
  • @Programmer,不!我尝试了一个没有任何其他框架并产生相同问题的新项目

标签: android facebook unity3d jar google-play-games


【解决方案1】:

'无法将类转换为 dex 格式。有关详细信息,请参阅控制台。'。

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

更新framework时经常出现这种情况,如果没有正确删除旧版本,那么有些类可能会出现两次。

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

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

【讨论】:

  • 谢谢@fafase!我没有升级框架版本。我正在做新的整合。为了测试,我创建了一个新项目并在我的项目中导入了 facebook 和 google play sdk。在为 android 构建时会产生相同的错误。您可以看到有问题的示例项目的下载链接。
  • 尝试阅读这篇文章,forum.unity3d.com/threads/… 几乎就是找出哪个罐子让事情出错了。可以是两个同名的罐子,但不一定。
【解决方案2】:

转到 Assets->FacebookSDK->Plugins->Android->libs 然后删除 android-support-v4.jar。那里存在冲突,因为它包含来自另一个 jar 或 aar 文件的类。

【讨论】:

  • 我没有收到“android-support-v4.jar”。文件在我的文件夹中,但我得到了同样的错误。
  • 这个答案很旧,因为 FB 插件现在不同了。它可能使用 .aar 插件而不是 jar,因此在 FaceBook SDK 中查找 .aar 插件扩展并将其删除。也许这会奏效......
  • 你可以检查这个问题stackoverflow.com/questions/46938647/…
【解决方案3】:

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

【讨论】:

    【解决方案4】:

    也许回答太晚了,我也遇到了同样的问题,我创建了一个插件,这个插件包含 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-25
      • 1970-01-01
      • 2014-03-30
      • 2022-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多