所以我有我的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。
答案 0 :(得分:28)
在我的项目中搜索约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。
在干净和构建之后,我能够按原样运行我的应用程序。
答案 1 :(得分:23)
找到这个问题后,@ Daniel_97s回答我只能通过在项目中添加multidex而不更改MainDexClasses.bat来解决此错误:
答案 2 :(得分:10)
答案 3 :(得分:8)
我只选择&gt;构建&gt; Android Build并选中Enable Multi-Dex它将解决
答案 4 :(得分:4)
我的.csproj
文件中的 KeyStore 条目不再有效,甚至想到右键单击该项目并检查属性表明我已将其指向新位置
在.csproj中查找<AndroidSigningKeyStore>
的所有实例并进行相应的更新。
答案 5 :(得分:1)
重新分配对我有用的密钥库的路径
==编辑01 ==
双击Android项目> Android程序包签名
在Keystore路径上,不知道为什么,但是显然路径错误,我从同一路径再次选择了.keystore文件,错误“以代码2退出”消失了,我能够存档发布
答案 6 :(得分:1)
我在这个问题上苦苦挣扎了很长时间。我发现了签名错误的根源-当我从公司TFS克隆项目回购时,Android csproj文件具有用于KeyStore设置和位置的条目。我没有密钥库,并且驱动器上的位置无效。然后,Visual Studio无法在部署时对应用程序进行签名,它没有提供某种FileNotFoundException的签名,而是给我提供了代码2退出的Java。所以...
tl; dr:转到android项目属性,选择对程序包签名,然后取消选中“对apk文件签名...”(将csproj <AndroidKeyStore>true</AndroidKeyStore>
更改为false),瞧,您现在可以运行解决方案。 / p>
答案 7 :(得分:1)
就我而言,这是指向Hein AndreGrønnestad提到的“使用以下密钥库详细信息签名.APK文件”选项的链接。 位置不正确。
我想提供一条对每个人都适用的路径,所以我使用$ HOME / Library / ...而不是/ Users / Me / Library /...
问题在于$ HOME并不意味着Java有什么特别之处,因此找不到密钥库文件。
解决方案:使用相对路径或绝对路径而不使用$ HOME变量或〜
答案 8 :(得分:0)
如果您仍在使用旧版本,请将Visual Studio更新为最新版本。
如果您认为没有解决方案,请启用Multidex
答案 9 :(得分:0)
在我的情况下,密钥库详细信息之一是错误的,在保存->清理->构建过程后,它可以正常工作。
答案 10 :(得分:0)
尝试重置密钥库或将密钥true更改为false。 只检查。但是请记住,需要将其设置为true。
答案 11 :(得分:0)
从VS Mac切换到VS Windows时出现此错误。
Here the topic Switching From VS Mac To VS Windows got “java.exe” exited with code 2
问题来自Android.csproj和密钥库路径。
即使我在
VSWindows AndroidProject =>属性=>登录
<AndroidKeyStore>True</AndroidKeyStore>
<AndroidSigningKeyStore>YourMacPath/Alias.keystore</AndroidSigningKeyStore>
<AndroidSigningStorePass>Password</AndroidSigningStorePass>
<AndroidSigningKeyAlias>Alias</AndroidSigningKeyAlias>
<AndroidSigningKeyPass>AliasPassword</AndroidSigningKeyPass>
在调试和发布部分。
然后您可以在VS Windows上对其进行编辑。
希望我帮助了某人。 再见
答案 12 :(得分:0)
使用以下密钥库详细信息作为@Klemikaze禁用.APK文件的签名
答案 13 :(得分:0)
对我来说,这是我的密钥库的问题。按照此 link 启用诊断。这将在输出窗口中为您提供更详细的错误消息。如果它说您的密钥库未能验证,您将不得不修复您的密钥库。这为我解决了问题。
答案 14 :(得分:-1)
我的经历是...
我更新了以下元素:
从26.1.0.1
到28.0.0.3
然后,在问题开始于:
“ java.exe”退出,代码为2 Xamarin.Android项目。
我刚刚在Android项目属性中勾选了Enable Multi-Dex
。我在Windows系统中使用VS 2017。