我的Xamarin Forms Android应用程序在Debug中可以正常工作。但是在Release中,将其部署到仿真器或设备时,在显示初始屏幕后将“停止”该应用程序。调试日志显示这些错误,表明找不到类FitWindowsLinearLayout ...
10-23 22:24:59.270 14008 14008 E AndroidRuntime:由以下原因引起: android.view.InflateException:二进制XML文件第14行:二进制XML 文件行#14:错误放大类 android.support.v7.widget.FitWindowsLinearLayout
10-23 22:24:59.270 14008 14008 E AndroidRuntime:由以下原因引起: android.view.InflateException:二进制XML文件第14行:错误 膨胀类android.support.v7.widget.FitWindowsLinearLayout
10-23 22:24:59.270 14008 14008 E AndroidRuntime:由以下原因引起: java.lang.ClassNotFoundException:找不到类 路径上的“ android.support.v7.widget.FitWindowsLinearLayout” DexPathList [[zip文件 “ /data/app/zeemerix.NflCalcXF-1/base.apk"],nativeLibraryDirectories=[/data/app/zeemerix.NflCalcXF-1/lib/arm, /data/app/zeemerix.NflCalcXF-1/base.apk!/lib/armeabi-v7a、/system/lib, / vendor / lib]]
更改链接到“无”可解决问题,但APK很大。 我应该使用“跳过链接程序集”吗?如果是这样,输入什么?
我尝试使用Proguard配置文件,但是当我这样做时,MainPage会显示为空白屏幕,并且调试日志说它找不到Help_ObClick(),后者是MainPage代码后面的事件处理程序。我使用的个人资料是这个...
-dontobfuscate
-keep class android.support.v7.widget.** { *; }
-dontwarn android.support.v7.widget.**
-keep class android.support.v4.widget.Space { *; }
-dontwarn android.support.v4.widget.Space
我的Android选项:
关闭:使用共享运行时 开启:启用Proguard 开启:启用开发人员检测 链接:SDK和用户程序集[将其设置为None可以解决问题]
使用Android版本编译:8.1 最低Android版本:7.0 目标Android版本:8.1
我的设置:
VS社区2017,版本15.7.3 Xamarin 4.10.10.1 Xamarin Android SDK 8.3.3.2 Xamarin表格3.3.0.912540 Xamarin支持库v27.0.2.1
答案 0 :(得分:0)
答案 1 :(得分:0)
如您所知,链接“无”有效,然后尝试链接“仅Sdk Assembiles” 如果那不起作用,那么您可以进入构建文件夹,复制所有组件的所有名称减去扩展名,然后将其添加到“跳过链接程序集”领域
然后将链接设置为“ SDK和用户程序集”,然后重试。 这将花费很多时间,但随后将这些文件从列表中删除,直到找到导致问题的文件为止。
对我来说,因为仅链接“ SDK组件”才能工作起来要容易得多,所以我可以消除在这里找到的所有SDK组件:
https://docs.microsoft.com/en-us/xamarin/cross-platform/internals/available-assemblies
用户列表要小得多,因此消除过程要快得多...
首先,使用反射的libraires通常是一个问题,因为在compli和标记为删除之前无法轻松识别它们。 以我为例,它是Json.Net,RestSharp等。
我发布的应用程序大小仅为原本的三分之一...