"java.exe" 退出代码 2 Xamarin.Android 项目
"java.exe" exited with code 2 Xamarin.Android project
所以我的 Xamarin.Android 项目包含多个库。当我尝试构建时,我收到一条错误消息,显示 "java.exe" 已退出,代码为 2。
经过几个小时的 google 研究,我发现我可以启用 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" exited with code 2
的步骤
1) 按照 link:
中的描述更改 MainDexClasses.bat
http://www.jon-douglas.com/2016/09/05/xamarin-android-multidex/
2) 确保您在 Android 应用程序中启用了 Multidex
选项!如果 Multidex
设置为 true
,请查看 .csprj
文件(在我的例子中,即使我启用了 Multidex
)
3) 在您的 AndroidManifest
文件中添加以下部分
<application android:name="android.support.multidex.MultiDexApplication"></application>
这将告诉您的 Android 项目实际使用给定的 Multidex-Option。
清理和构建后,我能够运行我的应用程序。
在找到这个问题和@Daniel_97s 回答后,我只能通过在不更改 MainDexClasses.bat:
的情况下向项目添加 multidex 来解决这个错误
- 勾选项目选项中的选项:
将 MultiDexApplication
添加到 Android 清单:
<application android:name="android.support.multidex.MultiDexApplication"></application>
请注意,我在 Visual Studio 上为 Mac 收到此错误代码 2,在 Windows 上成功构建了同一应用程序。 (为什么?)
我只转到选项 > 构建 > Android 构建并选中启用 Multi-Dex 它将解决
我的解决方案是禁用 "Sign the .APK file using the following keystore details"。由于密钥库位置 and/or 密码不正确,java.exe 以代码 2 退出。
如果您仍在使用旧版本,请将您的 Visual Studio 更新到最新版本。
如果您认为没有解决方案,请启用 Multidex
重新分配对我有用的密钥库路径
==编辑 01==
双击 Android 项目 > Android 包签名
在 Keystore 路径上,不知道为什么,但显然路径是错误的,我从同一路径重新select .keystore 文件,错误 "exited with code 2" 消失了而且我能够存档以供发布
在我的例子中,密钥库详细信息之一是错误的,在保存 -> 清理 -> 构建过程后它起作用了。
尝试重置密钥库 <AndroidSigningKeyStore>
或将密钥更改为 false
>
<AndroidKeyStore>true</AndroidKeyStore>
只是为了检查。但是记住需要设置为true。
清理并重建解决方案后。
我的 .csproj
文件有一个不再有效的 KeyStore 条目,甚至认为右键单击项目并检查属性表明我已经指出它到新位置。
在 .csproj 中查找 <AndroidSigningKeyStore>
的所有实例并进行相应更新。
我已经为这个问题苦苦挣扎了很长时间。我在签名中找到了错误的来源——当我从公司 TFS 克隆项目回购时,Android csproj 文件包含 KeyStore 设置和位置的条目。我没有密钥库,我的驱动器上的位置无效。 Visual Studio 然后无法在部署时签署应用程序,而不是某种 FileNotFoundException 它只给我 java 退出代码 2。所以...
tl;dr:转到 android 项目属性,select 包签名取消选中 "Sign the apk file..."(将 csproj <AndroidKeyStore>true</AndroidKeyStore>
更改为 false)瞧,你可以现在 运行 你的解决方案。
我在从 VS Mac 切换到 VS Windows 时遇到了这个错误。
问题来自 Android.csproj 和密钥库路径。
它被设置为我的 Mac 路径,即使我在
上更改了它
VSWindows AndroidProject => 属性 => 登录
所以我在 Android.csproj 上删除了这一行(使用第三个文本编辑器编辑):
<AndroidKeyStore>True</AndroidKeyStore>
<AndroidSigningKeyStore>YourMacPath/Alias.keystore</AndroidSigningKeyStore>
<AndroidSigningStorePass>Password</AndroidSigningStorePass>
<AndroidSigningKeyAlias>Alias</AndroidSigningKeyAlias>
<AndroidSigningKeyPass>AliasPassword</AndroidSigningKeyPass>
关于调试和发布部分。
然后你可以在 VS 上编辑它们 Windows。
希望我帮助了别人。
再见
禁用以@Klemikaze 身份使用以下密钥库详细信息对 .APK 文件进行签名
在我的例子中,这是 link 到 "Sign the .APK file using the following keystore details" 选项,正如 Hein Andre Grønnestad 提到的。
位置不正确。
我想设置一条适合所有工作人员的路径,所以我使用了 $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" exited with code 2 Xamarin.Android project.
我刚刚勾选了Android项目属性里面的Enable Multi-Dex
。我在 windows 系统中使用 VS 2017。
对我来说,这是我的密钥库的问题。按照此 link 启用诊断。这将在输出 window 中为您提供更详细的错误消息。如果它说您的密钥库无法验证,您将必须修复您的密钥库。这解决了我的问题。
对我来说,事实证明我安装了 Eclipse Temurin JDK 并且正在使用它。在 VS Tools>Options>Xamarin 中,我将 Java Development Kit Location 的路径从 Eclipse 路径更改为 C:\Program Files\Microsoft\jdk-11.0.12.7-hotspot。
也许更重要的是,我发现 运行 正在使用 Eclipse Temurin JDK:
msbuild /bl /t:"恢复;SignAndroidPackage"
在我的解决方案目录中,然后打开生成的 msbuild.binlog 并单击一些错误,Eclipse 的路径脱颖而出。您的问题可能有所不同,但以这种方式找到它可能是解决问题的关键。
编辑:关闭并重新打开 VS 2019 后,我的设置没有保留。此时我开始使用 VS 2022 并且没有问题。
注意:Multi-dex 已启用。
经过 5 小时的查找或回答,这是我得出的结论 -
- 在 Visual Studio 中启用诊断 MSBuild 输出,以便您可以查看有关错误的更多详细信息:
- Click Tools > Options...
- In the left-hand tree view, select Projects and Solutions > Build and Run
- In the right-hand panel, set the MSBuild build output verbosity dropdown to Diagnostic, Click OK
- Clean and rebuild your package. Diagnostic output is visible within the Output panel.
- 如果您的错误显示“java.io.IOException:无效的密钥库格式”,您可能使用了过时的 Java sdk 文件,所以下一步:
Open Visual Studio and update the Java Development Kit Location to
point to the new JDK under Tools > Options > Xamarin > Android
Settings > Java Development Kit Location:
一定要重启Visual Studio。
所以我的 Xamarin.Android 项目包含多个库。当我尝试构建时,我收到一条错误消息,显示 "java.exe" 已退出,代码为 2。
经过几个小时的 google 研究,我发现我可以启用 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" exited with code 2
的步骤1) 按照 link:
中的描述更改 MainDexClasses.bathttp://www.jon-douglas.com/2016/09/05/xamarin-android-multidex/
2) 确保您在 Android 应用程序中启用了 Multidex
选项!如果 Multidex
设置为 true
,请查看 .csprj
文件(在我的例子中,即使我启用了 Multidex
)
3) 在您的 AndroidManifest
文件中添加以下部分
<application android:name="android.support.multidex.MultiDexApplication"></application>
这将告诉您的 Android 项目实际使用给定的 Multidex-Option。
清理和构建后,我能够运行我的应用程序。
在找到这个问题和@Daniel_97s 回答后,我只能通过在不更改 MainDexClasses.bat:
的情况下向项目添加 multidex 来解决这个错误- 勾选项目选项中的选项:
将
MultiDexApplication
添加到 Android 清单:<application android:name="android.support.multidex.MultiDexApplication"></application>
请注意,我在 Visual Studio 上为 Mac 收到此错误代码 2,在 Windows 上成功构建了同一应用程序。 (为什么?)
我只转到选项 > 构建 > Android 构建并选中启用 Multi-Dex 它将解决
我的解决方案是禁用 "Sign the .APK file using the following keystore details"。由于密钥库位置 and/or 密码不正确,java.exe 以代码 2 退出。
如果您仍在使用旧版本,请将您的 Visual Studio 更新到最新版本。
如果您认为没有解决方案,请启用 Multidex
重新分配对我有用的密钥库路径
==编辑 01==
双击 Android 项目 > Android 包签名
在 Keystore 路径上,不知道为什么,但显然路径是错误的,我从同一路径重新select .keystore 文件,错误 "exited with code 2" 消失了而且我能够存档以供发布
在我的例子中,密钥库详细信息之一是错误的,在保存 -> 清理 -> 构建过程后它起作用了。
尝试重置密钥库 <AndroidSigningKeyStore>
或将密钥更改为 false
>
<AndroidKeyStore>true</AndroidKeyStore>
只是为了检查。但是记住需要设置为true。
清理并重建解决方案后。
我的 .csproj
文件有一个不再有效的 KeyStore 条目,甚至认为右键单击项目并检查属性表明我已经指出它到新位置。
在 .csproj 中查找 <AndroidSigningKeyStore>
的所有实例并进行相应更新。
我已经为这个问题苦苦挣扎了很长时间。我在签名中找到了错误的来源——当我从公司 TFS 克隆项目回购时,Android csproj 文件包含 KeyStore 设置和位置的条目。我没有密钥库,我的驱动器上的位置无效。 Visual Studio 然后无法在部署时签署应用程序,而不是某种 FileNotFoundException 它只给我 java 退出代码 2。所以...
tl;dr:转到 android 项目属性,select 包签名取消选中 "Sign the apk file..."(将 csproj <AndroidKeyStore>true</AndroidKeyStore>
更改为 false)瞧,你可以现在 运行 你的解决方案。
我在从 VS Mac 切换到 VS Windows 时遇到了这个错误。
问题来自 Android.csproj 和密钥库路径。
它被设置为我的 Mac 路径,即使我在
VSWindows AndroidProject => 属性 => 登录
所以我在 Android.csproj 上删除了这一行(使用第三个文本编辑器编辑):
<AndroidKeyStore>True</AndroidKeyStore>
<AndroidSigningKeyStore>YourMacPath/Alias.keystore</AndroidSigningKeyStore>
<AndroidSigningStorePass>Password</AndroidSigningStorePass>
<AndroidSigningKeyAlias>Alias</AndroidSigningKeyAlias>
<AndroidSigningKeyPass>AliasPassword</AndroidSigningKeyPass>
关于调试和发布部分。
然后你可以在 VS 上编辑它们 Windows。
希望我帮助了别人。 再见
禁用以@Klemikaze 身份使用以下密钥库详细信息对 .APK 文件进行签名
在我的例子中,这是 link 到 "Sign the .APK file using the following keystore details" 选项,正如 Hein Andre Grønnestad 提到的。 位置不正确。
我想设置一条适合所有工作人员的路径,所以我使用了 $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" exited with code 2 Xamarin.Android project.
我刚刚勾选了Android项目属性里面的Enable Multi-Dex
。我在 windows 系统中使用 VS 2017。
对我来说,这是我的密钥库的问题。按照此 link 启用诊断。这将在输出 window 中为您提供更详细的错误消息。如果它说您的密钥库无法验证,您将必须修复您的密钥库。这解决了我的问题。
对我来说,事实证明我安装了 Eclipse Temurin JDK 并且正在使用它。在 VS Tools>Options>Xamarin 中,我将 Java Development Kit Location 的路径从 Eclipse 路径更改为 C:\Program Files\Microsoft\jdk-11.0.12.7-hotspot。 也许更重要的是,我发现 运行 正在使用 Eclipse Temurin JDK: msbuild /bl /t:"恢复;SignAndroidPackage" 在我的解决方案目录中,然后打开生成的 msbuild.binlog 并单击一些错误,Eclipse 的路径脱颖而出。您的问题可能有所不同,但以这种方式找到它可能是解决问题的关键。 编辑:关闭并重新打开 VS 2019 后,我的设置没有保留。此时我开始使用 VS 2022 并且没有问题。
注意:Multi-dex 已启用。
经过 5 小时的查找或回答,这是我得出的结论 -
- 在 Visual Studio 中启用诊断 MSBuild 输出,以便您可以查看有关错误的更多详细信息:
- Click Tools > Options...
- In the left-hand tree view, select Projects and Solutions > Build and Run
- In the right-hand panel, set the MSBuild build output verbosity dropdown to Diagnostic, Click OK
- Clean and rebuild your package. Diagnostic output is visible within the Output panel.
- 如果您的错误显示“java.io.IOException:无效的密钥库格式”,您可能使用了过时的 Java sdk 文件,所以下一步:
Open Visual Studio and update the Java Development Kit Location to point to the new JDK under Tools > Options > Xamarin > Android Settings > Java Development Kit Location:
一定要重启Visual Studio。