Forum General

Xamarin Update 3.11.345 - Apr 30 2015 - Broken

CliffCawley.NCliffCawley.N USMember

Hi,

I've been holding off for a couple of weeks and finally decided to update today (silly I know, I've lost half my morning on this now).

I'm on the Stable Channel and updated only to find a bunch of things have been deprecated and others broken.

Here's a list:

  • Error 4 Property or indexer 'Android.Graphics.Typeface.Serif' cannot be assigned to -- it is read only
  • Error 5 Property or indexer 'Android.Graphics.Typeface.SansSerif' cannot be assigned to -- it is read only
  • Warning 12 Member 'OnCreateDialog(int)' overrides obsolete member 'Android.App.Activity.OnCreateDialog(int)'.
  • Warning 7 Member 'OnConsoleMessage(string, int, string)' overrides obsolete member 'Android.Webkit.WebChromeClient.OnConsoleMessage(string, int, string)'.
  • Warning 2 @(Content) build action is not supported AndroidManifest.xml
  • Warning 8 'Android.Webkit.WebChromeClient.OnConsoleMessage(string, int, string)' is obsolete: 'deprecated'
  • Warning 3 'Android.App.Activity.ShowDialog(int)' is obsolete: 'deprecated'
  • Warning 11 'Android.App.Activity.OnCreateDialog(int)' is obsolete: 'deprecated'

That's strange I thought, the API must have been updated, I'll check the release notes:

http://developer.xamarin.com/releases/vs/xamarin.vs_3/xamarin.vs_3.11/

Huh, the top of the Release notes says "v.3.11 Alpha and Beta"

Has the latest Alpha been accidentally released? We had Alpha features creep into the Stable release a couple of months ago and now this?!

There's no mention of the above api upgrades which have exposed errors (Android.Graphics.Typeface.Serif, etc is now readonly) or the new deprecated functions.

What are you guys doing over there?

We're using Xamarin in a production environment on the stable branch, paying a small fortune for it and we just can't rely on it!

This is appalling!

Posts

  • CliffCawley.NCliffCawley.N USMember
    edited April 2015

    Also, if this is a new big release with breaking API changes, where is the announcement? I can't see anything on the blog and the release notes seem to imply it's just another update to the Alpha/Beta channels?

  • hvaughanhvaughan USMember ✭✭✭

    Same problem here. Thinking about uninstalling everything and going back a version. I also have spent all day dealing with these issues.

  • gaojiajungaojiajun CAMember

    Same as me. A whole day just for those issues.

  • CliffCawley.NCliffCawley.N USMember
    edited April 2015

    I tried installing the previous version over the top but started having strange errors when running, including on Android being unable to use FindViewById at all.

    A complete Uninstall/Reinstall of the previous version fixed the problem for me.

    I won't be upgrading to 3.11 though as it seems like it's still in Beta.

  • MihaMarkicMihaMarkic SI ✭✭✭✭

    IMO members marked as obsolete aren't really a breaking change IMO, though warnings could be a bit annoying. I do agree that documentations are quite spartan and out of date sometimes.
    Out of curiosity, why don't you just fix those two errors? Since they won't go away you would have to modify the code anyway. And perhaps you'd spend much less time.

  • CliffCawley.NCliffCawley.N USMember
    edited May 2015

    Because upon inspection it looks like it's an Alpha/Beta release and we unfortunately can't use that in our production app as it's liable to cause further issues for our users.

    Also, they're breaking if the functions have actually been obsoleted and are no longer in use, because the functionality stops working until I spend the time figuring out how to get them working again.

  • JeffPinkhamJeffPinkham GBUniversity

    Yep having MAJOR issues with this at the moment, When I go to debug the app Visual Studio 2013 Ultimate Update 4 hangs and so does the app.

  • MihaMarkicMihaMarkic SI ✭✭✭✭

    @CliffCawley.Nimble They are merely marked as obsolete, they still work and will probably work for some time. The warning is saying "look, rather avoid this member as it will stop working somewhere if future."
    I am curios, how do you deduce it is alpha/beta? Specific problems?

  • JohnMillerJohnMiller USForum Administrator, Xamarin Team Xamurai

    Hey All,

    I just wanted to comment that 3.11 was not accidentally released. All products were updated in this cycle and pushed a few days ago to the Stable channel.

    We have a few similar issues coming through to support and are collecting information now. If you are hitting an issue, please email [email protected] so we can help. Once we get some information we will post a release thread.

    Apologies for any issues and the confusion.

  • CliffCawley.NCliffCawley.N USMember
    edited May 2015

    @MihaMarkic Look at the top of: http://developer.xamarin.com/releases/vs/xamarin.vs_3/xamarin.vs_3.11/

    Just under the title area it says v.3.11 Alpha and Beta

    Compare that to: http://developer.xamarin.com/releases/vs/xamarin.vs_3/xamarin.vs_3.9/

    Also, when using Obsolete, it's common courtesy to provide the upgrade option.

    I.e. [System.Obsolete("use NewMethod")]
    or
    [Obsolete("This class is obsolete; use class B instead")]

    See https://msdn.microsoft.com/en-us/library/22kk2b44(v=vs.90).aspx
    "The Obsolete attribute can be used without arguments, but including an explanation of why the item is obsolete and what to use instead is recommended."

    None of the obsolete functions have any of that kind of mark up.

  • MihaMarkicMihaMarkic SI ✭✭✭✭

    a) That is probably just a document update issue. As candidates pass through alpha, beta and then release.
    b) yes, it'd be nice to have some info besides plain "obsolete" - it'd help. But still, not a breaking change material nor very hard to implement the new way.

  • CliffCawley.NCliffCawley.N USMember
    edited May 2015

    @MihaMarkic Sure, maybe it is a document update issue, but that's why I created the post too, to find out for sure.

    I'm over cautious because every time I update Xamarin there are always new issues introduced. When I saw Alpha/Beta mentioned it immediately reminded me of the release issue a couple of months ago where a bug introduced in the Alpha channel, made it's way into Beta and then Stable, even though there was a fix for it in Alpha.

    My confidence in solid releases of the Xamarin SDK is 0%.

  • MihaMarkicMihaMarkic SI ✭✭✭✭

    @CliffCawley.Nimble Better safe than sorry! Agreed. :smile:

  • JohnMillerJohnMiller USForum Administrator, Xamarin Team Xamurai

    I pinged the team to find out the details on whats going on in the doc. In the meantime, we have a forum post tracking the 3.11 release here.

  • PeterCollinsPeterCollins USXamarin Team Xamurai

    @CliffCawley.Nimble We've had a bit of a documentation hiccup with the 3.11 release notes, these will be updated shortly.

    To address the API updates you've mentioned, these have all been documented in the Xamarin.Android 5.1 release notes. There are several breaking changes in this release, one of which is the removal of property setters for Java final fields. It's this change has resulted in the new Android.Graphics.Typeface errors you're seeing.

    For more information, the full set of API changes in Xamarin.Android 5.1 can be found here.

  • jpingjping USMember

    me too...not thing(source code) change,but broken after upgrade...
    please help us.

    android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment einvoicedetailnfc.android.views.fragments.ProductTour1Fragment: make sure class name exists, is public, and has an empty constructor that is public
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.support.v4.app.Fragment.instantiate(Fragment.java:427)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.support.v4.app.Fragment.instantiate(Fragment.java:395)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at 05-01 11:02:45.696 E/AndroidRuntime( 7499): at md5fbce3a62350eea73461866d526eb8db8.MvxViewPagerFragmentAdapter.n_getItem(Native Method)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at md5fbce3a62350eea73461866d526eb8db8.MvxViewPagerFragmentAdapter.getItem(MvxViewPagerFragmentAdapter.java:38)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:97)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:837)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.support.v4.view.ViewPager.populate(ViewPager.java:987)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.support.v4.view.ViewPager.populate(ViewPager.java:919)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1441)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.view.View.measure(View.java:17430)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.view.View.measure(View.java:17430)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.view.View.measure(View.java:17430)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1436)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.widget.LinearLayout.measureVertical(LinearLayout.java:722)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.widget.LinearLayout.onMeasure(LinearLayout.java:613)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.view.View.measure(View.java:17430)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5463)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2560)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.view.View.measure(View.java:17430)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2001)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1166)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1372)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1054)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5779)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.view.Choreographer.doCallbacks(Choreographer.java:580)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.view.Choreographer.doFrame(Choreographer.java:550)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:753)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.os.Handler.handleCallback(Handler.java:739)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.os.Handler.dispatchMessage(Handler.java:95)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.os.Looper.loop(Looper.java:135)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.app.ActivityThread.main(ActivityThread.java:5221)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at java.lang.reflect.Method.invoke(Native Method)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at java.lang.reflect.Method.invoke(Method.java:372)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): Caused by: java.lang.ClassNotFoundException: Didn't find class "einvoicedetailnfc.android.views.fragments.ProductTour1Fragment" on path: DexPathList[[zip file "/data/app/EInvoiceDetailNFC.Android-1/base.apk"],nativeLibraryDirectories=[/data/app/EInvoiceDetailNFC.Android-1/lib/arm64, /vendor/lib64, /system/lib64]]
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at android.support.v4.app.Fragment.instantiate(Fragment.java:417)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): ... 43 more
    05-01 11:02:45.696 E/AndroidRuntime( 7499): Suppressed: java.lang.ClassNotFoundException: einvoicedetailnfc.android.views.fragments.ProductTour1Fragment
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at java.lang.Class.classForName(Native Method)
    05-01 11:02:45.696 E/AndroidRuntime( 7499): at java.lang.B

  • MihaMarkicMihaMarkic SI ✭✭✭✭

    @PeterCollins Can't you include a short suggestion in ObsoleteAttribute Message as well? It'd be really useful to see a workaround proposal next to warning.

  • FredyWengerFredyWenger CHInsider ✭✭✭✭✭

    @CliffCawley.Nimble, @hvaughan, @gaojiajun, @MihaMarkic, @PeterCollins, @jping and at all other readers of this thread.
    I have done a test with the newest pre-Alpha version and posted my findings here:

    forums.xamarin.com/discussion/41844/my-findings-after-test-if-the-newest-xamarin-vs-integration-software#latest

    I think, this should be interesting for you...

    Cheers

  • CliffCawley.NCliffCawley.N USMember

    An update to this:

    I've had to upgrade to the latest Xamarin to fix an issue with iOS submissions and it seems the Android debugging experience is still totally broken and unusable.

    I'm on Xamarin.VisualStudio_3.11.458 and when you try to debug the app, after a couple of seconds, visual studio freezes along with the app and Android says the app isn't responding, would I like to close it. This was one of the same issues back on Xamarin.VisualStudio_3.11.345 and it's still there almost a month later?!

    If I downgrade to Xamarin.VisualStudio_3.9.547 debugging on Android is fine but I can no longer submit to Apple on iOS and the Android components on the store now cause build errors (I.e ViewPager)

  • CliffCawley.NCliffCawley.N USMember

    And finally: I've updated to the Beta channel: 3.11.576 which seems to be working better than before but still flaky. It feels like everything is held together with chewing gum and sticky tape.

    The components I use complain that I'm using the wrong version, but if I update to the version they want, I either get compiler errors due to missing classes, or they just show an error, or they say they're incomplete because the package they want doesn't exist in the project and adding the package they want using the 'Packages' tab in the component does nothing.

    I think there might be some dependency issues going on with the Xamarin component store. Some components are on v21 but their nuget packages are actually on v22 so it confuses the whole system.

Sign In or Register to comment.