“java.exe”退出,代码为 2 Xamarin.Android 项目

新手上路,请多包涵

所以我有我的 Xamarin.Android 项目,其中包含几个库。当我尝试构建时,我收到一条错误消息,提示“java.exe”以代码 2 退出。

经过几个小时的谷歌研究,我发现我可以启用 Multidex。根据 Jon Doublas 的博客条目,我执行了上述步骤。 http://www.jon-douglas.com/2016/09/05/xamarin-android-multidex/

根据博客条目 Android API Level > 21 处理 Multidex 本身。那么我的经验是它没有。我在 API 级别 25 上构建,并使用相同的信息一次又一次地得到相同的错误。文章中的步骤没有帮助。 Xamarin.Android 似乎不支持 Multidex。

似乎您必须自己处理 Multidex,但我还没有找到任何有效的解决方案。有人找到了有效的解决方案吗?

我正在使用 Xamarin 4.6 和 Visual Studio 2017。

原文由 Daniel_97 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 637
2 个回答

在我的项目中搜索了大约 20 小时后找到了答案。下面是解决问题“java.exe”退出代码 2 的步骤

  1. 按照链接中的说明更改 MainDexClasses.bat:

http://www.jon-douglas.com/2016/09/05/xamarin-android-multidex/

  1. 确保您已在您的 Android 应用程序中启用 Multidex 选项! Have a look at the .csprj file if Multidex is set to true (in my case it wasn’t even if I enabled Multidex )

  2. 在你的 AndroidManifest 文件中添加以下部分

<application android:name="android.support.multidex.MultiDexApplication"></application>

这将告诉您的 Android 项目实际使用给定的 Multidex-Option。

在清理和构建之后,我能够按原样运行我的应用程序。

原文由 Daniel_97 发布,翻译遵循 CC BY-SA 4.0 许可协议

在找到这个问题和@Daniel_97s 的回答后,我只能通过在不更改 MainDexClasses.bat 的情况下向项目添加 multidex 来解决此错误:

  1. 检查项目选项中的选项:

检查项目选项中的选项:

  1. MultiDexApplication 添加到 Android 清单:
    <application android:name="android.support.multidex.MultiDexApplication"></application>

请注意,我在 Visual Studio for Mac 上收到此错误代码 2,在 Windows 上成功构建了同一应用程序。 (为什么?)

原文由 Micer 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题