xamarin.android - Xamarin.Android 无法使用 proguard 编译
问题描述
我有一个项目可以在 api 29 以下的任何版本中完美运行。
当我尝试在 Android 10 设备中运行时,应用程序在显示启动画面后崩溃。我发现的解决方案之一是将 proguard 与自定义配置一起使用:
-keep class android.support.v7.widget.FitWindowsLinearLayout { *; }
-keep class android.support.v7.widget.** { *; }
现在我尝试使用 proguard 进行编译,但出现错误。
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.DX.targets(5,5): Error MSB6006: "java" foi encerrado com o código 1. (MSB6006) (Garcom)
...
Destino "_CompileToDalvik" no arquivo "/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.DX.targets":
Compilação de destino "_CompileToDalvik" concluída.
O arquivo de saída "obj/Release/stamp/_CompileToDalvik.stamp" não existe.
Tarefa "MakeDir"
Tarefa em execução pronta "MakeDir".
Usando a tarefa "Proguard" do assembly "/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.Build.Tasks.dll".
Tarefa "Proguard"
Variáveis de Ambiente passadas para a ferramenta:
PROGUARD_HOME=/Library/Frameworks/Xamarin.Android.framework/Libraries/xbuild/Xamarin/Android/proguard
/Users/osdinformatica/Library/Developer/Xamarin/jdk/microsoft_dist_openjdk_1.8.0.25/bin/java -jar /Library/Frameworks/Xamarin.Android.framework/Libraries/xbuild/Xamarin/Android/proguard/lib/proguard.jar -include '/Users/osdinformatica/Library/Developer/Xamarin/android-sdk-macosx//tools/proguard/proguard-android.txt' -include 'obj/Release/proguard/proguard_xamarin.cfg' -include 'obj/Release/proguard/proguard_project_references.cfg' -include 'obj/Release/proguard/proguard_project_primary.cfg' -include 'proguard.cfg' -include '/Users/osdinformatica/XamarinForms/Garcom - teste android 11/Garcom/trunk/packages/Xamarin.Android.Arch.Lifecycle.Runtime.1.1.1.3/build/monoandroid90/../../proguard/monoandroid90/proguard.txt' -include '/Users/osdinformatica/XamarinForms/Garcom - teste android 11/Garcom/trunk/packages/Xamarin.Android.Arch.Lifecycle.ViewModel.1.1.1.3/build/monoandroid90/../../proguard/monoandroid90/proguard.txt' -include '/Users/osdinformatica/XamarinForms/Garcom - teste android 11/Garcom/trunk/packages/Xamarin.Android.Support.VersionedParcelable.28.0.0.3/build/monoandroid90/../../proguard/monoandroid90/proguard.txt' -include '/Users/osdinformatica/XamarinForms/Garcom - teste android 11/Garcom/trunk/packages/Xamarin.Android.Support.Compat.28.0.0.3/build/monoandroid90/../../proguard/monoandroid90/proguard.txt' -include '/Users/osdinformatica/XamarinForms/Garcom - teste android 11/Garcom/trunk/packages/Xamarin.Android.Support.CoordinaterLayout.28.0.0.3/build/monoandroid90/../../proguard/monoandroid90/proguard.txt' -include '/Users/osdinformatica/XamarinForms/Garcom - teste android 11/Garcom/trunk/packages/Xamarin.Android.Support.Media.Compat.28.0.0.3/build/monoandroid90/../../proguard/monoandroid90/proguard.txt' -include '/Users/osdinformatica/XamarinForms/Garcom - teste android 11/Garcom/trunk/packages/Xamarin.Android.Support.Animated.Vector.Drawable.28.0.0.3/build/monoandroid90/../../proguard/monoandroid90/proguard.txt' -include '/Users/osdinformatica/XamarinForms/Garcom - teste android 11/Garcom/trunk/packages/Xamarin.Android.Support.Transition.28.0.0.3/build/monoandroid90/../../proguard/monoandroid90/proguard.txt' -include '/Users/osdinformatica/XamarinForms/Garcom - teste android 11/Garcom/trunk/packages/Xamarin.Android.Support.v7.AppCompat.28.0.0.3/build/monoandroid90/../../proguard/monoandroid90/proguard.txt' -include '/Users/osdinformatica/XamarinForms/Garcom - teste android 11/Garcom/trunk/packages/Xamarin.Android.Support.v7.RecyclerView.28.0.0.3/build/monoandroid90/../../proguard/monoandroid90/proguard.txt' -include '/Users/osdinformatica/XamarinForms/Garcom - teste android 11/Garcom/trunk/packages/Xamarin.Android.Support.Design.28.0.0.3/build/monoandroid90/../../proguard/monoandroid90/proguard.txt' -injars "'obj/Release/android/bin/classes/../classes.zip'(!META-INF/MANIFEST.MF):'/Library/Frameworks/Mono.framework/External/xbuild-frameworks/MonoAndroid/v9.0/mono.android.jar'(!META-INF/MANIFEST.MF):'/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/java_runtime.jar'(!META-INF/MANIFEST.MF):'/Users/osdinformatica/XamarinForms/Garcom - teste android 11/Garcom/trunk/packages/Xamarin.Jetbrains.Annotations.13.0.0.1/build/monoandroid90/../../jar/org.jetbrains.annotations.jar'(!META-INF/MANIFEST.MF):'/Users/osdinformatica/XamarinForms/Garcom - teste android 11/Garcom/trunk/packages/Xamarin.Kotlin.StdLib.1.3.50.1/build/monoandroid90/../../jar/org.jetbrains.kotlin.kotlin-stdlib.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/11/jl/okio.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/10/jl/okhttp.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/21/jl/com.android.support.support-annotations.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/23/jl/com.android.support.collections.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/15/jl/android.arch.lifecycle.common.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/12/jl/picasso-2.5.2.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/13/jl/android.arch.core.common.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/32/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/35/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/34/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/33/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/20/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/18/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/27/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/9/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/0/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/29/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/16/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/45/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/28/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/17/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/1/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/19/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/26/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/44/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/43/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/38/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/36/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/31/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/30/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/37/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/39/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/46/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/41/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/48/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/24/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/4/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/40/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/47/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/2/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/5/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/14/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/22/jl/bin/classes.jar'(!META-INF/MANIFEST.MF):'obj/Release/lp/25/jl/bin/classes.jar'(!META-INF/MANIFEST.MF)" -libraryjars '/Users/osdinformatica/Library/Developer/Xamarin/android-sdk-macosx/platforms/android-30/android.jar' -outjars obj/Release/proguard/__proguard_output__.jar -optimizations !code/allocation/variable
java.io.FileNotFoundException: /Users/osdinformatica/XamarinForms/Garcom (Is a directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at proguard.FileWordReader.<init>(FileWordReader.java:39)
at proguard.ConfigurationParser.parseIncludeArgument(ConfigurationParser.java:279)
at proguard.ConfigurationParser.parse(ConfigurationParser.java:150)
at proguard.ProGuard.main(ProGuard.java:586)
/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/Android/Xamarin.Android.DX.targets(32,5): error MSB6006: "java" foi encerrado com o código 1.
Tarefa em execução pronta "Proguard" -- FALHA.
proguard.cfg 构建操作设置为 ProguardConfiguration。我已经尝试过:
- 更新保护
- 将 Java 最大堆大小设置为 1G
- 启用多索引
这些都不起作用。
解决方案
推荐阅读
- amazon-web-services - AWS Secrets Manager 找不到指定的密钥
- html - 在 Chrome 76+ 中以不同方式放置的绝对定位内联元素
- python - 在字典 jinja 中访问字典
- javascript - Session.Create(FlowFile) 无内容传输
- bootstrap-4 - @ng-select 3.x 不起作用鼠标单击选项
- python-3.x - setup.py 与 conda 安装的依赖项(不是 pip)
- c - 禁止 C 预处理器更改变量名
- kubernetes - Kubernetes 绑定地址
- vue.js - 带有水平分页的 D3 饼图图例
- java - 回退不工作??未生成 JSON