web-dev-qa-db-ja.com

「Java.exe」はコード2 Xamarin.Androidプロジェクトで終了しました

そのため、いくつかのライブラリを含む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自体を処理します。まあ、私の経験ではそうではありません。情報。記事の手順は役に立たないXamarin.AndroidはMultidexをサポートしていないようです。

Multidexを自分で処理しなければならないようですが、動作する解決策は見つかりませんでした。誰かが機能する解決策を見つけましたか?

Xamarin 4.6とVisual Studio 2017を使用しています。

23
Daniel_97

私のプロジェクトで約20時間検索した後、答えが見つかりました。そこで、コード2で終了した問題「Java.exe」を解決する手順を以下に示します。

1)リンクの説明に従って、MainDexClasses.batを変更します。

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

2)AndroidアプリケーションでMultidexオプションを有効にしていることを確認してください!.csprjファイルがMultidextrueに設定されている場合(私の場合は、Multidexを有効にしても、そうではありませんでした)

3)AndroidManifestファイルに次の部分を追加します

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

これにより、指定されたMultidex-Optionを実際に使用するようにAndroidプロジェクトに通知されます。

クリーンビルドを行った後、アプリケーションをそのまま実行できました。

33
Daniel_97

この質問と@ Daniel_97sの回答を見つけた後、MainDexClasses.batを変更せずにプロジェクトにmultidexを追加するだけでこのエラーを解決できました。

  1. [プロジェクトオプション]のオプションを確認します。

Check the option in Project Options:

  1. MultiDexApplicationをAndroidマニフェストに追加:

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

注:このエラーコード2は、Visual Studio for MacとWindowsで同じアプリが正常にビルドされていました。 (なぜ?)

28
Micer

私の場合の解決策は、「次のキーストアの詳細を使用して.APKファイルに署名する」を無効にすることでした。キーストアの場所やパスワードが間違っていたため、Java.exeはコード2で終了しました。

enter image description here

[オプション]> [ビルド]> [Androidビルドに移動し、解決するMulti-Dexを有効にする]に移動するだけです

9
Vermoric Huynh

.csprojファイルにはKeyStoreのエントリがありましたが、プロジェクトは右クリックしてプロパティを調べても、新しい場所を示していると考えられました。

.csproj内で<AndroidSigningKeyStore>のすべてのインスタンスを探し、それに応じて更新します。

7
Le-roy Staines

私はこの問題に長い間苦労してきました。署名のエラーの原因を見つけました-会社のTFSからプロジェクトリポジトリを複製したため、Android csprojファイルにはキーストアの設定と場所のエントリがありました。キーストアと場所がありませんでした。ドライブは無効でした。VisualStudioはデプロイ中にアプリに署名できず、何らかの種類のFileNotFoundExceptionの代わりにJavaがコード2で終了しました。

tl; dr:Androidプロジェクトのプロパティに移動し、パッケージに署名して「apkファイルに署名...」のチェックを外します(csproj <AndroidKeyStore>true</AndroidKeyStore> to false)そして出来上がり、ソリューションを実行できるようになりました。

enter image description here

3
Klemikaze

私のために働いたキーストアのパスを再割り当てします

==編集01 ==

Android Project> Android Package Signing

キーストアのパスで、理由はわかりませんが、明らかにパスが間違っていたため、同じパスから.keystoreファイルを再度選択すると、「コード2で終了」というエラーがなくなり、リリース用にアーカイブできました

2

次のキーストアの詳細を@Klemikazeとして使用して、.APKファイルへの署名を無効にします

1
Java_Dude

私の場合、キーストアの詳細の1つが間違っていました。保存後->クリーニング->ビルドプロセスが機能しました。

0
100RaBH

VS MacからVS Windowsに切り替えるときにこのエラーが発生しました。

ここで、トピック「VS MacからVS Windowsへの切り替え」で、コード2で「Java.exe」が終了しました

この問題は、Android.csprojとキーストアパスから発生していました。
変更した場合でも、Macパスに設定されました

VSWindows AndroidProject =>プロパティ=>サインイン

そこで、Android.csprojの次の行を削除しました(3番目のテキストエディターで編集)。

<AndroidKeyStore>True</AndroidKeyStore>
<AndroidSigningKeyStore>YourMacPath/Alias.keystore</AndroidSigningKeyStore>
<AndroidSigningStorePass>Password</AndroidSigningStorePass>
<AndroidSigningKeyAlias>Alias</AndroidSigningKeyAlias>
<AndroidSigningKeyPass>AliasPassword</AndroidSigningKeyPass>

デバッグおよびリリースパート。

その後、VS Windowsでそれらを編集できます。

私が誰かを助けたことを願っています。じゃあ

0
G Clovs

古いバージョンを使用している場合は、Visual Studioを最新バージョンに更新してください。

解決策がないと思う場合は、Multidexを有効にしてください

0
Zumry Mohamed

キーストアをリセットするか、キーをfalseに変更してtrueを試してください。確認のみ。ただし、trueに設定する必要があることを覚えておいてください。