所以我有我的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。
在我的项目中搜索大约20个小时后找到答案..所以这里是解决问题“java.exe”退出代码2的步骤
1)按照链接中的描述更改MainDexClasses.bat:
http://www.jon-douglas.com/2016/09/05/xamarin-android-multidex/
2)确保您已在Android应用程序中启用Multidex
选项!如果.csprj
设置为Multidex
,请查看true
文件(在我的情况下,即使我启用Multidex
也不行)
3)在AndroidManifest
文件中添加以下部分
<application android:name="android.support.multidex.MultiDexApplication"></application>
这将告诉您的Android项目实际使用给定的Multidex-Option。
在干净和构建之后,我能够按原样运行我的应用程序。
尝试重置密钥库或将密钥更改为false true。只是为了检查。但要记住它需要设置为true。
从VS Mac切换到VS Windows时出现此错误。
Here the topic Switching From VS Mac To VS Windows got “java.exe” exited with code 2
问题来自Android.csproj和Keystore Path。 即使我更改了它,它也被设置为我的Mac Path
VS Windows Android Project =>属性=>登录
<AndroidKeyStore>True</AndroidKeyStore>
<AndroidSigningKeyStore>YourMacPath/Alias.keystore</AndroidSigningKeyStore>
<AndroidSigningStorePass>Password</AndroidSigningStorePass>
<AndroidSigningKeyAlias>Alias</AndroidSigningKeyAlias>
<AndroidSigningKeyPass>AliasPassword</AndroidSigningKeyPass>
在调试和发布部分。
然后,您可以在VS Windows上编辑它们。
希望我能帮助别人。拜拜
禁用使用以下密钥库详细信息签署.APK文件@Klemikaze
我只选择> Build> Android Build并选中Enable Multi-Dex它将解决
我的.csproj
文件有一个不再有效的KeyStore条目,甚至认为右键单击项目并检查属性表明我已将其指向新位置。
在.csproj中查找<AndroidSigningKeyStore>
的所有实例并相应地更新。
重新分配为我工作的密钥库的路径
==编辑01 ==
双击Android Project> Android Package Signing
在Keystore路径上,不知道原因,但显然路径错误,我从同一路径再次重新选择.keystore文件,错误“退出代码2”消失了,我能够存档发布
很长一段时间我一直在努力解决这个问题。我在签名时发现了错误的来源 - 当我从公司TFS克隆项目回购时,Android csproj文件有KeyStore设置和位置的条目。我没有密钥库,我的驱动器上的位置无效。然后Visual Studio在部署时无法对应用程序进行签名,而不是某种FileNotFoundException,它只让java退出代码2.所以......
tl; dr:转到android项目属性,选择包签名取消选中“签署apk文件...”(将csproj <AndroidKeyStore>true</AndroidKeyStore>
更改为false),瞧,您现在可以运行您的解决方案了。
如果您仍在使用旧版本,请将Visual Studio更新到最新版本。
如果您认为没有解决方案,那么去启用Multidex
在我的情况下,在保存 - >清理 - >构建过程之后,密钥库详细信息之一是错误的。