繁体   English   中英

将Xamarin.Forms更新为2.3.0.49后出现错误

[英]After updating Xamarin.Forms to 2.3.0.49 getting error

将Xamarin.Forms更新到最新版本后,出现以下错误:

在/Users/builder/data/lanes/2923/52635947/source/mono/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143中的System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()[0x0000c]在/ Users / builder / data / lanes / 3340 / 4e275588 / source中的Java.Interop.JniEnvironment + InstanceMethods.CallNonvirtualVoidMethod(JniObjectReference实例,JniObjectReference类型,Java.Interop.JniMethodInfo方法,Java.Interop.JniArgumentValue * args)[0x000a7]中/Java.Interop/src/Java.Interop/Java.Interop/JniEnvironment.g.cs:12083 at Java.Interop.JniPeerMembers + JniInstanceMethods.InvokeVirtualVoidMethod(System.String编码的成员,IJavaPeerable自身,Java.Interop.JniArgumentValue *参数)[ /Users/builder/data/lanes/3340/4e275588/source/Java.Interop/src/Java.Interop/Java.Interop/JniPeerMembers.JniInstanceMethods_Invoke.cs:31中的[0x00068]:Android.Widget.ImageView.SetScaleType(Android。 / Users / builder / data / lanes / 3340 / 4e2中的Widget.ScaleType scaleType)[0x0002c] 75588 /源代码/monodroid/src/Mono.Android/platforms/android-23/src/produced/Android.Widget.ImageView.cs:1300在C上Xamarin.Forms.Platform.Android.ImageRenderer.UpdateAspect()[0x00011] :XAmarin.Forms.Platform.Android.ImageRenderer.OnElementChanged(Xamarin.Forms.Platform.Android.ElementChangedEventArgs 1 e) [0x0002e] in C:\\BuildAgent2\\work\\aad494dc9bc9783\\Xamarin.Forms.Platform.Android\\Renderers\\ImageRenderer.cs:40 at EForms.Droid.Controls.EImageRenderer.OnElementChanged (Xamarin.Forms.Platform.Android.ElementChangedEventArgs \\:BuildAgent2 \\ work \\ aad494dc9bc9783 \\ Xamarin.Forms.Platform.Android \\ Renderers \\ ImageRenderer.cs:56 1 e) [0x0002e] in C:\\BuildAgent2\\work\\aad494dc9bc9783\\Xamarin.Forms.Platform.Android\\Renderers\\ImageRenderer.cs:40 at EForms.Droid.Controls.EImageRenderer.OnElementChanged (Xamarin.Forms.Platform.Android.ElementChangedEventArgs 1 e)[ 0:00002]在E:\\ Project \\ BBQMVP \\ BBQ \\ Mobile \\ Lib \\ EForms \\ EForms.Droid \\ Src \\ Renderers \\ Controls \\ EImageRenderer.cs:24 ---受管例外堆栈跟踪的结尾--- java.lang.NullPointerException在android.widget.ImageView.setScaleType(ImageView.java:549)在mono.java.lang.RunnableImplementor.n_run(本机方法)在mono.java.lang.RunnableImplementor.run(RunnableImplemen tor.java:30),位于android.os.Handler.handleCallback(Handler.java:730),位于android.os.Handler.dispatchMessage(Handler.java:92),位于android.os.Looper.loop(Looper.java:176) )的android.app.ActivityThread.main(ActivityThread.java:5419)处的com.java.lang.reflect.Method.invokeNative(本机方法)处的java.lang.reflect.Method.invoke(Method.java:525)处的)。 android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1046)位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)位于dalvik.system.NativeStart.main(本地方法)

在更新xamarin.forms之后,有人可以建议这是xamarin.forms问题还是某些android配置问题?

在ImageView源代码中

public void setScaleType(ScaleType scaleType) {
     if (scaleType == null) {
         throw new NullPointerException();
     }

     if (mScaleType != scaleType) {
        mScaleType = scaleType;

         setWillNotCacheDrawing(mScaleType == ScaleType.CENTER);            

         requestLayout();
         invalidate();
    }

}

在ImageRenderer中

void UpdateAspect()
        {
            AImageView.ScaleType type = Element.Aspect.ToScaleType();
            Control.SetScaleType(type);
        }

因此,看起来您的Xamarin.Forms.Image的Aspect意外设置为null吗?

Xamarin表格并不总是与最新版本的Android支持库兼容。 如果安装的android支持库与安装的Xamarin Forms版本不兼容,则解决方案无法编译。

要解决以上问题,请右键单击您的解决方案,然后打开nuget软件包管理器。 转到已安装的标签并删除Xamarin表单,然后一个一个地删除所有android支持库。

卸载Xamarin Forms和所有android支持库后,请安装稳定版本的Xamarin Forms。 这将反过来安装兼容的Android支持库集。

如果解决方案仍无法编译,请尝试以下操作:1)确保已安装最新的JDK,VS正确指向它2)转到C:\\ Users [UserName] \\ appdata \\ local,然后删除Xamarin文件夹3)在VS中打开解决方案,将其清理并重建。 重建将需要一些时间,请稍后再检查。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM