简体   繁体   English

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

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

After updating Xamarin.Forms to latest version i am getting below error : 将Xamarin.Forms更新到最新版本后,出现以下错误:

at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /Users/builder/data/lanes/2923/52635947/source/mono/external/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 at Java.Interop.JniEnvironment+InstanceMethods.CallNonvirtualVoidMethod (JniObjectReference instance, JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x000a7] in /Users/builder/data/lanes/3340/4e275588/source/Java.Interop/src/Java.Interop/Java.Interop/JniEnvironment.g.cs:12083 at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeVirtualVoidMethod (System.String encodedMember, IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x00068] in /Users/builder/data/lanes/3340/4e275588/source/Java.Interop/src/Java.Interop/Java.Interop/JniPeerMembers.JniInstanceMethods_Invoke.cs:31 at Android.Widget.ImageView.SetScaleType (Android.Widget.ScaleType scaleType) [0x0002c] in /Users/builder/data/lanes/3340/4e2 在/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/source/monodroid/src/Mono.Android/platforms/android-23/src/generated/Android.Widget.ImageView.cs:1300 at Xamarin.Forms.Platform.Android.ImageRenderer.UpdateAspect () [0x00011] in C:\\BuildAgent2\\work\\aad494dc9bc9783\\Xamarin.Forms.Platform.Android\\Renderers\\ImageRenderer.cs:56 at 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 1 e) [0x00002] in E:\\Project\\BBQMVP\\BBQ\\Mobile\\Lib\\EForms\\EForms.Droid\\Src\\Renderers\\Controls\\EImageRenderer.cs:24 --- End of managed exception stack trace --- java.lang.NullPointerException at android.widget.ImageView.setScaleType(ImageView.java:549) at mono.java.lang.RunnableImplementor.n_run(Native Method) at mono.java.lang.RunnableImplementor.run(RunnableImplemen 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) at android.os.Handler.handleCallback(Handler.java:730) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:176) at android.app.ActivityThread.main(ActivityThread.java:5419) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862) at dalvik.system.NativeStart.main(Native Method) 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(本地方法)

Can anyone suggest that is this the xamarin.forms issue or some android configuration issue after updating xamarin.forms ? 在更新xamarin.forms之后,有人可以建议这是xamarin.forms问题还是某些android配置问题?

In ImageView source code 在ImageView源代码中

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

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

         setWillNotCacheDrawing(mScaleType == ScaleType.CENTER);            

         requestLayout();
         invalidate();
    }

} }

And in ImageRenderer 在ImageRenderer中

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

So, it looks like your Xamarin.Forms.Image's Aspect is set to null accidently? 因此,看起来您的Xamarin.Forms.Image的Aspect意外设置为null吗?

Xamarin forms, will not always be compatible with the latest version of the Android support libraries. Xamarin表格并不总是与最新版本的Android支持库兼容。 If the android support libraries installed are not compatible to the install Xamarin Forms version, the solution wont compile. 如果安装的android支持库与安装的Xamarin Forms版本不兼容,则解决方案无法编译。

To address the above issue, right click you solution and open nuget package manager. 要解决以上问题,请右键单击您的解决方案,然后打开nuget软件包管理器。 Go to the installed tabs and remove Xamarin forms and then remove all the android support libraries one by one. 转到已安装的标签并删除Xamarin表单,然后一个一个地删除所有android支持库。

Once both Xamarin Forms and all android support libs are uninstalled, Install a stable version of Xamarin Forms. 卸载Xamarin Forms和所有android支持库后,请安装稳定版本的Xamarin Forms。 This will in turn install the compatible set of Android support libraries. 这将反过来安装兼容的Android支持库集。

If the solution doesnt compile still, then try these : 1) Make sure you have latest JDK installed and the VS points to it correctly 2) Go to C:\\Users[UserName]\\appdata\\local, and delete the Xamarin folder 3) Open solution in VS, clean it and rebuild. 如果解决方案仍无法编译,请尝试以下操作:1)确保已安装最新的JDK,VS正确指向它2)转到C:\\ Users [UserName] \\ appdata \\ local,然后删除Xamarin文件夹3)在VS中打开解决方案,将其清理并重建。 It will take sometime to rebuild, wait and check it later. 重建将需要一些时间,请稍后再检查。

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

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