【问题标题】:(x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2053,3): error MSB6006: "java.exe" exited with code 1(x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2053,3): error MSB6006: "java.exe" exited with code 1
【发布时间】:2018-02-22 07:10:00
【问题描述】:

我有一个 xamarin.form PCL。

在 DEBUG 中找到应用构建并运行。 我想启用“ProGuard”功能。

但出现以下错误:

1>C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2053,3): error MSB6006: "java.exe" exited with code 1.

我做了什么:

  • 设置最大堆大小:1G 到 5G。
  • 启用/禁用 Multi-Dex
  • 在:仅 SDK 程序集/SDK 和用户程序集之间切换
  • 已更新至最新的 ProGuard,并保留旧 ProGuard 的最新配置。
  • 更新了 SDK 管理器。
    • jdk1.8.0_111
  • 设置 Xamarin 诊断输出强度:诊断。

找不到任何其他错误。

Android 项目包含 -proguard.cfg

# General Android
-dontwarn org.apache.http.**
-dontwarn android.net.http.AndroidHttpClient

我检查了 Xamarin.android.Common.targets 中的第 2053 行:

 <Proguard
    Condition="'$(AndroidEnableProguard)' == 'True' and '$(_ProguardProjectConfiguration)' != ''"
    ProguardJarPath="$(ProguardJarPath)"
    AndroidSdkDirectory="$(_AndroidSdkDirectory)"
    JavaToolPath="$(JavaToolPath)"
    ProguardToolPath="$(ProguardToolPath)"
    ToolExe="$(ProguardToolExe)"
    UseProguard="$(UseProguard)"
    JavaPlatformJarPath="$(JavaPlatformJarPath)"
    ClassesOutputDirectory="$(IntermediateOutputPath)android\bin\classes"
    AcwMapFile="$(_AcwMapFile)"
    ProguardCommonXamarinConfiguration="$(IntermediateOutputPath)proguard\proguard_xamarin.cfg"
    ProguardGeneratedReferenceConfiguration="$(_ProguardProjectConfiguration)"
    ProguardGeneratedApplicationConfiguration="$(IntermediateOutputPath)proguard\proguard_project_primary.cfg"
    ProguardConfigurationFiles="$(ProguardConfigFiles)"
    JavaLibrariesToEmbed="@(_JavaLibrariesToCompile);@(_InstantRunJavaReference)"
    ExternalJavaLibraries="@(AndroidExternalJavaLibrary)"
    DoNotPackageJavaLibraries="@(_ResolvedDoNotPackageAttributes)"
    ProguardJarOutput="$(IntermediateOutputPath)proguard\__proguard_output__.jar"
    EnableLogging="$(ProguardEnableLogging)"
    DumpOutput="$(IntermediateOutputPath)proguard\dump.txt"
    PrintSeedsOutput="$(IntermediateOutputPath)proguard\seeds.txt"
    PrintUsageOutput="$(IntermediateOutputPath)proguard\usage.txt"
    PrintMappingOutput="$(IntermediateOutputPath)proguard\mapping.txt"
     />

使用最新版本编译 最小:23 目标:使用编译SDK版本

VS2015 NDK 和 SDK 参考是正确的,因为我可以在 DEBUG 中生成构建。

详细:诊断

3>C:\TEST_TFS\XXXX.XXXXX-XXXX-XXXX\XXXXX-XXXX-XXXX-branch-no-auth\APP.XXXXX.XXXX\APP.XXXXX.XXXX.Droid\AWClient-SDK.dll : warning XA0101: @(Content) build action is not supported
    3>C:\TEST_TFS\XXXX.XXXXX-XXXX-XXXX\XXXXX-XXXX-XXXX-branch-no-auth\APP.XXXXX.XXXX\APP.XXXXX.XXXX.Droid\LocalDb\DatabaseConnection_Android.cs(22,30,22,32): warning CS0168: The variable 'ex' is declared but never used
    3>C:\TEST_TFS\XXXX.XXXXX-XXXX-XXXX\XXXXX-XXXX-XXXX-branch-no-auth\APP.XXXXX.XXXX\APP.XXXXX.XXXX.Droid\PCL\PlatformStyleBO.cs(19,24,19,44): warning CS0169: The field 'PlatformStyleBO._buttonHeightRequest' is never used
    3>  APP.XXXXX.XXXX.Droid -> C:\TEST_TFS\XXXX.XXXXX-XXXX-XXXX\XXXXX-XXXX-XXXX-branch-no-auth\APP.XXXXX.XXXX\APP.XXXXX.XXXX.Droid\bin\Release\APP.XXXXX.XXXX.Droid.dll
    3>C:\TEST_TFS\SSSSS.XXXXX-XXXX-XXXX\XXXXX-XXXX-XXXX-branch-no-auth\APP.XXXXX.XXXX\APP.XXXXX.XXXX.Droid\APP.XXXXX.XXXX.Droid.csproj : warning XA0105: The $(TargetFrameworkVersion) for FormsViewGroup.dll (vv8.0) is greater than the $(TargetFrameworkVersion) for your project (v7.1). You need to increase the $(TargetFrameworkVersion) for your project.
    3>C:\TEST_TFS\SSSSS.XXXXX-XXXX-XXXX\XXXXX-XXXX-XXXX-branch-no-auth\APP.XXXXX.XXXX\APP.XXXXX.XXXX.Droid\APP.XXXXX.XXXX.Droid.csproj : warning XA0105: The $(TargetFrameworkVersion) for Xamarin.Forms.Platform.Android.dll (vv8.0) is greater than the $(TargetFrameworkVersion) for your project (v7.1). You need to increase the $(TargetFrameworkVersion) for your project.
    3>C:\TEST_TFS\SSSSS.XXXXX-XXXX-XXXX\XXXXX-XXXX-XXXX-branch-no-auth\APP.XXXXX.XXXX\APP.XXXXX.XXXX.Droid\APP.XXXXX.XXXX.Droid.csproj : warning XA0105: The $(TargetFrameworkVersion) for Xamarin.Forms.Platform.dll (vv8.0) is greater than the $(TargetFrameworkVersion) for your project (v7.1). You need to increase the $(TargetFrameworkVersion) for your project.
    3>C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2053,3): error MSB6006: "java.exe" exited with code 1.

【问题讨论】:

    标签: c# android xamarin proguard


    【解决方案1】:

    Proguard 可能有点痛苦。通常的症状类似于

    java 以代码 1 退出

    对我有用的步骤(我将这些注释存储在我的解决方案中,因为它并不明显)。来自this site

    1. 下载最新版本的Proguard
    2. 找到您的 Android SDK 的安装位置(类似于 /android-sdk/tools/proguard”)。要查找 SDK,请转到 Tools-&gt;Options-&gt;Xamarin
    3. 用新版本替换旧版本的 Proguard。为此,将当前文件夹重命名为“Proguard-pointless”,然后将新文件夹复制到工具文件夹中。
    4. 务必将新版本的文件夹重命名为“proguard”。
    5. 确保所有配置文件也被复制到新的 Proguard 文件夹中。对我来说,这是proguard-android-optimize.txtproguard-android.txtproguard-project.txt
    6. 在您的 Android 项目的根目录中添加一个名为 proguard.cfg的新文件

      注意:由于 Xamarin 很智能,它会将这个新文件保存在 UTF-8BOM您需要更改它。最好在记事本中创建文件,然后将其包含在您的程序中。 这是必需的,因为除非文件采用 UTF-8 编码,否则 Proguard 不会读取文件。

    7. 在 VS 中右键单击文件并选择属性。对于构建操作,选择 ProguardConfiguration
    8. 将相关的keepdontwarn 子句添加到不带引号的文件中(这取决于您的警告),例如它可能是这样的......
      • “-dontwarn com.google.android.gms.**”
      • “-keep class com.google.android.gms.**”
    9. 完成这些步骤后,再次尝试构建。
    10. 希望这次会更成功。如果不成功,检查您的构建输出 并查看 Proguard 给您的警告和说明。

    从这个阶段开始,确定您需要对自定义 Proguard 文件进行哪些修改,一旦成功,构建就会成功。

    更新

    Xamarin.Forms.Platform.Android.dll (vv8.0) 大于 $(TargetFrameworkVersion) 用于您的项目 (v7.1)

    我知道这些只是警告,但是已经尝试过它所说的内容。即为您的项目更新了目标框架版本?

    【讨论】:

    • 谢谢迈克尔,我实际上已经完成了所有这些。下载、重命名、复制、保留配置、添加 proguard 并通过转到记事本确保它是 UTF。遇到 Xamarin.Android.Common.targets(2053,3) 时似乎无法输出任何错误。我会按照您的步骤仔细重试。
    • 再试一次,没有成功。我根本没有得到任何proguard错误! 1>C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2053,3): error MSB6006: "java.exe" exited with code 1.
    • 您能否进一步查看输出有时在 liog 中有线索。您也可以尝试将日志详细信息设置为更高的设置
    • @PJB 更新了,让我们试试看会发生什么,它可能会让我们前进一点
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    相关资源
    最近更新 更多