首页 > 解决方案 > Unity3D构建错误:无法编译资源

问题描述

我使用 UltimateMobile 插件和 uniwebview 插件,也许它们是冲突的。当我构建时,Unity3d 控制台说:

    Failed to compile resources with the following parameters:
    -bootclasspath 
    "C:/Program Files/Java/android-sdk-windows\platforms\android-27\android.jar" -d 
    "C:\Game\3drq\superblocks\Temp\StagingArea\bin\classes" 
    -source 1.6 -target 1.6 -encoding UTF-8 
    "android\support\v4\Manifest.java" 
    "android\support\v4\R.java"             
    "com\cheerflame\superblocks\Manifest.java" 
    "com\cheerflame\superblocks\R.java" 
    "com\google\android\gms\Manifest.java" 
    "com\google\android\gms\R.java"    
    "com\google\android\gms\ads\Manifest.java" 
    "com\google\android\gms\ads\R.java" 
    "com\google\android\gms\ads\impl\Manifest.java" 
    "com\google\android\gms\ads\impl\R.java" 
    "com\google\android\gms\analytics\Manifest.java" 
    "com\google\android\gms\analytics\R.java" 
    "com\google\android\gms\appinvite\Manifest.java" 
    "com\google\android\gms\appinvite\R.java" 
    "com\google\android\gms\auth\Manifest.java" 
    "com\google\android\gms\auth\R.java" 
    "com\google\android\gms\auth\api\Manifest.java"
    "com\google\android\gms\auth\api\R.java" 
    "com\google\android\gms\base\Manifest.java" 
    "com\google\android\gms\base\R.java" 
    "com\google\android\gms\drive\Manifest.java" 
    "com\google\android\gms\drive\R.java" 
     "com\google\android\gms\games\Manifest.java" 
    "com\google\android\gms\games\R.java" 
    "com\google\android\gms\gcm\Manifest.java" 
    "com\google\android\gms\gcm\R.java" 
    "com\google\android\gms\iid\Manifest.java"
     "com\google\android\gms\iid\R.java" 
    "com\google\android\gms\plus\Manifest.java" 
    "com\google\android\gms\plus\R.java" 
    "com\stansassets\androidnative\Manifest.java"       
    "com\stansassets\androidnative\R.java"
     "com\stansassets\billing\Manifest.java" 
      "com\stansassets\billing\R.java" 
    "com\stansassets\googleplay\Manifest.java" 
    "com\stansassets\googleplay\R.java" 
    "com\stansassets\mnp\Manifest.java" 
    "com\stansassets\mnp\R.java" 
    "com\stansassets\social\Manifest.java" 
    "com\stansassets\social\R.java"
     ����: C:\Program Files\Java\android-sdk-windows\platforms\android-27\android.jar(java/lang/Object.class): 

���汾 52 �� 51 ��, �˱�����֧�����µ����汾�����������˱�������

����: C:\Program Files\Java\android-sdk-windows\platforms\android-27\android.jar(java/lang/String.class): 
���汾 52 �� 51 ��, �˱�����֧�����µ����汾��
    ���������˱�������
     ����: 
C:\Program Files\Java\android-sdk-windows\platforms\android-27\android.jar(java/lang/AutoCloseable.class): 
���汾 52 �� 51 ��, �˱�����֧�����µ����汾��
                      ���������˱�������
                    3 ������

为什么会有这么多乱码?我在另一台计算机上构建项目,很好,可以构建为 apk 文件。我不明白,请帮助我。谢谢 !

标签: androidunity3d

解决方案


您应该降级到 JDK 8。根据这个SO answer,它与您的问题有类似的错误消息:

从 Unity 2017 开始,Unity 与 JDK 9 不兼容,暂时需要继续使用 JDK 1.8。

(注意:在 JDK 9 的 Unity 问题跟踪器上也有一个活跃的问题,似乎是相关的。这不是完全相同的错误消息,但其他人也在评论您的错误消息。)

(编辑:问题的错误消息显示“android-27”,所以这可能不是实际的解决方案。我现在将其留在这里作为解决方案尝试,并且因为此错误消息的最常见原因之一,在一般,是JDK版本。)


(另外,对于“为什么会有这么多乱码?”给出一种可能的解释:黑盒子的小问号与字符串和字符编码有关。它可能与设置的提问者的计算机语言有关到另一种语言,如中文。我不确定这种情况下的确切原因,但请参阅每个软件开发人员绝对、肯定必须了解 Unicode 和字符集(没有任何借口!)了解有关黑盒的更多背景信息问号字符:

事实上,现在您正在考虑由 Unicode 代码点表示的柏拉图式理想字母,这些 Unicode 代码点也可以用任何老式编码方案进行编码!例如,您可以将 Hello (U+0048 U+0065 U+006C U+006C U+006F) 的 Unicode 字符串编码为 ASCII,或旧的 OEM 希腊编码,或希伯来语 ANSI 编码,或数百种编码中的任何一种到目前为止已经发明了一个问题:有些字母可能不会出现!如果你试图在你试图表示它的编码中表示的 Unicode 代码点没有等价物,你通常会得到一个小问号:?或者,如果你真的很好,一个盒子。你得到了哪个?-> �</p>


推荐阅读