Xamarin.Android - 释放模式下的 MvxRecyclerView 错误
Xamarin.Android - MvxRecyclerView error in release mode
我们将 Xamarin Android 项目从 mvvmcross 4.1.0 升级到 5.6.3。在调试模式下(链接器关闭)一切正常,但在发布模式下(Link 所有程序集)我们得到这个错误:
Didn't find class "android.view.MvxRecyclerView" on path: DexPathList[[zip file "/data/app/com.project-1/base.apk"],nativeLibraryDirectories=[/data/app/com.project-1/lib/arm, /system/fake-libs, /data/app/com.project-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
LinkerPleaseInclude.cs 文件是我在 mvvmcross git.
中找到的最新文件
Setup.cs 已经包含这个:
protected override IEnumerable<Assembly> AndroidViewAssemblies => new
List<Assembly>(base.AndroidViewAssemblies)
{
typeof(MvxRecyclerView).Assembly
};
我尝试将 MvxRecyclerView 添加到 Proguard.cfg 但没有成功。
我错过了什么?
解决方案是将其添加到 LinkerPleaseInclude.cs 文件。
public void Include(MvvmCross.Droid.Support.V7.RecyclerView.ItemTemplates.MvxDefaultTemplateSelector injector)
{
injector = new MvvmCross.Droid.Support.V7.RecyclerView.ItemTemplates.MvxDefaultTemplateSelector();
}
我们将 Xamarin Android 项目从 mvvmcross 4.1.0 升级到 5.6.3。在调试模式下(链接器关闭)一切正常,但在发布模式下(Link 所有程序集)我们得到这个错误:
Didn't find class "android.view.MvxRecyclerView" on path: DexPathList[[zip file "/data/app/com.project-1/base.apk"],nativeLibraryDirectories=[/data/app/com.project-1/lib/arm, /system/fake-libs, /data/app/com.project-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
LinkerPleaseInclude.cs 文件是我在 mvvmcross git.
中找到的最新文件Setup.cs 已经包含这个:
protected override IEnumerable<Assembly> AndroidViewAssemblies => new
List<Assembly>(base.AndroidViewAssemblies)
{
typeof(MvxRecyclerView).Assembly
};
我尝试将 MvxRecyclerView 添加到 Proguard.cfg 但没有成功。
我错过了什么?
解决方案是将其添加到 LinkerPleaseInclude.cs 文件。
public void Include(MvvmCross.Droid.Support.V7.RecyclerView.ItemTemplates.MvxDefaultTemplateSelector injector)
{
injector = new MvvmCross.Droid.Support.V7.RecyclerView.ItemTemplates.MvxDefaultTemplateSelector();
}