Aou*_*hid 6 c# android proguard xamarin.android xamarin
又是 Xamarin 的一天!甚至无法构建我的第一个Hello World项目!不足为奇吧?
所以,全新的Xamarin.Android空白项目。启用ProGuard,仅链接到SDK 程序集并继续构建项目。还有瓦拉!!有错误!(等等,我不应该感到惊讶,对吧?毕竟,它是 Xamarin)。这是错误:
“java.exe”退出,代码为 1
双击异常打开Xamarin.Android.Common.Targets文件并指向ProGuard如下标签:
<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="@(_JarsToProguard);@(_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"
ProguardInputJarFilter="$(_AndroidProguardInputJarFilter)"
/>
Run Code Online (Sandbox Code Playgroud)
所以,我最好的猜测是这可能是与ProGuard相关的问题。因此,搜索谷歌并应用了我迄今为止发现的所有修复:
build action为ProGuardConfiguration并添加了必要的自定义行。但仍然,相同的错误指向相同的ProGuard标签。现在,在有人开始攻击我说我可能搞乱了 proguard 配置文件之前,这里是它的链接:
我读到这是 Xamarin 中一个非常常见的问题。所以,我想,有人可能想出了一个真正有效的解决方案!。那么,对于我可能缺少的内容有任何修复或想法吗?
确保您添加的 proguard 文件不是 Unicode 文本文件(U+FEFF 字节顺序标记 (BOM)),因为 proguard 将失败...
启用诊断。MSBuild 的级别日志记录并获取完整的错误消息。
Proguard 正在被 Google 的 R8 取代
如果您使用的是最新版本的 Xamarin,请参阅此博客文章作为开始:
\n\n\n\n有关各种 D8/R8 项目配置的详细信息可以在此处的 Xamarin.Android 存储库中找到:
\n\n\n| 归档时间: |
|
| 查看次数: |
9441 次 |
| 最近记录: |