&引用;java.exe“;已退出代码为2的Xamarin.Android项目
所以我有我的Xamarin.Android项目,它包含几个库。当我尝试构建时,我收到一个错误,上面写着“java.exe”已退出,代码为2 经过几个小时的谷歌研究,我发现我可以启用Multidex。 根据Jon Doublas的博客,我完成了上面提到的步骤。 根据博客条目,Android API Level>21本身处理多索引。 我的经验是,事实并非如此。我是在API级别25的基础上构建的,用相同的信息一次又一次地得到相同的错误。 本文中的步骤没有帮助。看起来像是Xamarin。Android不支持多索引 看起来你必须自己处理多重索引,但我还没有找到任何有效的解决方案。有人找到了有效的解决方案吗&引用;java.exe“;已退出代码为2的Xamarin.Android项目,java,android,xamarin,xamarin.android,android-multidex,Java,Android,Xamarin,Xamarin.android,Android Multidex,所以我有我的Xamarin.Android项目,它包含几个库。当我尝试构建时,我收到一个错误,上面写着“java.exe”已退出,代码为2 经过几个小时的谷歌研究,我发现我可以启用Multidex。 根据Jon Doublas的博客,我完成了上面提到的步骤。 根据博客条目,Android API Level>21本身处理多索引。 我的经验是,事实并非如此。我是在API级别25的基础上构建的,用相同的信息一次又一次地得到相同的错误。 本文中的步骤没有帮助。看起来像是Xamarin。Android
我正在使用Xamarin 4.6和Visual studio 2017。在我的项目中搜索了大约20个小时后找到了答案。。 下面是解决“java.exe”与代码2一起退出的问题的步骤 1) 按照链接中的说明更改MainDexClasses.bat: 2) 确保在Android应用程序中启用了
Multidex
选项!如果Multidex
设置为true
,请查看.csprj
文件(在我的情况下,即使启用了Multidex
)
3) 在AndroidManifest
文件中添加以下部分
<application android:name="android.support.multidex.MultiDexApplication"></application>
这将告诉您的Android项目实际使用给定的Multidex选项
经过清理和构建后,我能够按原样运行我的应用程序。在找到此问题和@Daniel a s答案后,我只能通过向项目中添加multidex而不更改MaindexClass来解决此错误。bat:
MultiDexApplication
添加到Android清单:
<application android:name="android.support.multidex.MultiDexApplication"></application>
注意:我在Visual Studio for Mac和Windows上收到此错误代码2,该应用程序正在成功构建。(为什么?)。由于密钥库位置和/或密码不正确,java.exe退出,代码为2
如果您仍在使用旧版本,请将Visual Studio更新为最新版本
如果您认为没有解决方案,那么去启用
多索引
重新分配为我工作的密钥库的路径
==编辑01==
双击Android项目>Android软件包签名
在密钥库路径上,不知道为什么,但显然路径是错误的,我再次从同一路径重新选择.Keystore文件,错误“退出代码2”消失,我能够存档以供发布在我的情况下,密钥库详细信息之一是错误的,保存->清理->构建过程后,它工作。尝试重置密钥库
或将密钥更改为false
>
true
只是检查一下。但请记住,它需要设置为真
清理并重建解决方案后。My
.csproj
文件中有一个不再有效的密钥库条目,即使右键单击项目并检查属性表明我已将其指向新位置
在.csproj中查找
的所有实例,并相应地进行更新。我已经为这个问题挣扎了很长时间。我在签名时发现了错误的来源——当我从TFS公司克隆项目repo时,Android csproj文件中有密钥库设置和位置的条目。我没有密钥库,驱动器上的位置无效。VisualStudio随后无法在部署时对应用程序进行签名,它给我的不是某种FileNotFoundException,而是java退出,代码为2。所以
tl;dr:转到android项目属性,选择软件包签名,取消选中“签名apk文件…”(这会更改csproj
我在从VS Mac切换到VS Windows时出现此错误
问题来自Android.csproj和密钥库路径。
它被设置为我的Mac路径,即使我在上更改了它
VSWindows AndroidProject=>Properties=>Signin
因此,我在Android.csproj(使用第三个文本编辑器编辑)上删除了这一行:
True
YourMacPath/Alias.keystore
密码
别名
别名密码
关于调试和发布部分
然后您可以在VS Windows上编辑它们
希望我帮助了别人。
请参见ya禁用使用以下密钥库详细信息为.APK文件签名@Klemikaze在我的例子中,这是指向Hein Andre Grønnestad提到的“使用以下密钥库详细信息为.APK文件签名”选项的链接。
位置不正确
我想建立一条适用于所有工作人员的路径,所以我使用$HOME/Library/…而不是/Users/Me/Library/
问题是$HOME对java没有任何特殊意义,因此无法找到密钥库文件
解决方案:使用不带$HOME变量的相对路径或绝对路径或~我的经验是
我更新了以下内容:
- Xamarin.Android.Support.Design
- Xamarin.Android.Support.v4
- Xamarin.Android.Support.v7.AppCompat
- Xamarin.Android.Support.v7.CardView
- Xamarin.Android.Support.v7.MediaRouter
从26.1.0.1
到28.0.0.3
然后,在问题开始后:
“java.exe”已退出,代码为2 Xamarin.Android项目
我刚刚在Android项目属性中勾选了启用多索引
。我正在windows系统中使用VS 2017。对我来说,这是我的密钥库的问题。按照此操作启用诊断。这将在输出窗口中为您提供更详细的错误消息。如果它说您的密钥库fai
<AndroidKeyStore>true</AndroidKeyStore>
<AndroidKeyStore>True</AndroidKeyStore>
<AndroidSigningKeyStore>YourMacPath/Alias.keystore</AndroidSigningKeyStore>
<AndroidSigningStorePass>Password</AndroidSigningStorePass>
<AndroidSigningKeyAlias>Alias</AndroidSigningKeyAlias>
<AndroidSigningKeyPass>AliasPassword</AndroidSigningKeyPass>