【问题标题】:java.exe exited with code 2(MSB6006) Trouble writing output: Too many field references: 81626; max is 65536java.exe 以代码 2 退出(MSB6006) 写入输出时出错:字段引用过多:81626;最大值为 65536
【发布时间】:2015-10-15 07:19:24
【问题描述】:

我正在开发 xamarin android 应用程序,并在其中使用了许多包和引用(Google Play 服务)。当我尝试构建这个项目时,我得到了这个错误:

java.exe 退出并显示代码 2 写入输出时遇到问题:字段过多 参考文献:81626;最大值为 65536。您可以尝试使用 --multi-dex 选项

.

【问题讨论】:

    标签: android xamarin google-play-services android-multidex


    【解决方案1】:

    您需要在您的项目中启用Mutlidex。 Xamarin.Android 支持这一点,因为 version 5.1:

    可以使用新的$(AndroidEnableMultiDex) MSBuild 属性启用多 dex 支持,该属性也可通过 Visual Studio 和 Xamarin Studio 获得。

    【讨论】:

      【解决方案2】:

      通过启用 multidex ,应用程序将在三星设备 S5、S6 等上崩溃。 他们已停止推出更新。所以看起来我们正在等待三星推出新的操作系统更新并修复它。

      或者想办法在你的应用中不使用 multi-dex。

      【讨论】:

      • 第一次听说。你的来源是什么?
      • 没有看到三星或谷歌的任何回应。虽然很高兴提及这一点,但从您的回答中可以得出结论,这是官方声明,但实际上并非如此。你刚刚看到有人抱怨这个问题。他们遇到的崩溃也很可能是由于他们自己的错误或误用造成的。
      • 我有一个多 dex 应用程序,可以在安装 Lollipop 的 S5 和 S6 上完美运行。因此,请编辑您的答案,而不是说“通过启用 multidex,您的应用程序将在三星 S5 和 S6 上崩溃”,而是写下类似“有一些报告说运行 Lollipop 的三星 S5 和 S6 上的多 dex 应用程序崩溃”+提供答案本身的链接。
      【解决方案3】:

      您应该将以下代码添加到您的应用程序 gradle 文件中:

      defaultConfig {
      
          applicationId 'pkg'
          minSdkVersion 
          targetSdkVersion 
          versionCode 
          versionName 
      
          // Enable MultiDexing:  https://developer.android.com/tools/building/multidex.html
          multiDexEnabled true
      }
      

      并添加此依赖项:

        compile 'com.android.support:multidex:1.0.1'
      

      谢谢..!!

      【讨论】:

      • 我的 xamarin android 项目中没有 gradle 文件。这是什么?
      • @Parth Savadiya:不知道Xamarin。此解决方案适用于原生 Android 开发..!!
      猜你喜欢
      • 2021-04-28
      • 1970-01-01
      • 2018-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多