15
Dec
image

MX Player, one of the most popular video players on the Play Store (and my personal player of choice as of recent), hasn't worked since Android 4.4.1's release. Those who immediately upgraded to 4.4.1 lost access to MX Player and were instead greeted with the following popup:

Screenshot_2013-12-15-13-23-42

Annoying, isn't it, especially since the check is implemented from within the app itself rather than by using the maxSdkVersion parameter of the app's manifest? As a developer myself, I sort of understand why J2 Interactive, the player's developer, has put in the restriction, but users may not. Since developers don't get early access to future Android releases, they can't test their apps for potential crashes ahead of time. Then, one day a new version of Android hits, and a flood of 1-star reviews rolls in.

In order to prevent this from happening, some developers opt in for artificial lockout mechanisms. The problem is, these lockouts also prompt bad reviews, this time caused by frustration of being locked out, especially since the apps in question may work just fine all along. Either way, nobody wins, and the developers' best bet is to work as fast as possible to resolve compatibility.

In the meantime, we've received a flood of tips urging us to take the matter public, which I refused to do (AP is not your personal army - we need to show developers some respect). Today, 10 days after 4.4.1's first sighting, J2 Interactive released an update v1.7.21 that finally made MX Player compatible with 4.4.1 and 4.4.2. Whether 10 days is too long or not is impossible to say and up to you to decide - they may have very well run into issues that required development time. I think it's reasonable, especially since we don't know whether someone critical to signing off on the push was on vacation or had emergencies to attend to.

Screenshot_2013-12-15-13-39-16 Screenshot_2013-12-15-13-38-49 Screenshot_2013-12-15-13-38-11

Screenshot_2013-12-15-13-38-31

I do have one piece of advice for J2 Interactive and anyone who might end up in a similar situation in the future: talk to your users, keep them updated, don't leave them hanging for a long time, or they start getting nervous. In MX Player's case, such lack of updates is what caused most of the tips asking us for a public nudge (the developer responded quickly but failed to provide any updates after that). Remember, we, the users, understand you may have to work through bugs, and we just want to stay updated, so the least you, the developer, can do is drop a few words here and there. You can do that, right? Awesome.

Artem Russakovskii
Artem is a die-hard Android fan, passionate tech blogger, obsessive-compulsive editor, bug hunting programmer, and the founder of Android Police.
Most of the time, you will find Artem either hacking away at code or thinking of the next 15 blog posts.

  • taxi333

    about time ... MX player is awesome :D

  • Guest

    Took too long. Using VPlayer, none of this bullshit: https://play.google.com/store/apps/details?id=me.abitno.vplayer.t

    • Tomáš Petrík

      Yup, that was my replacement player as well.
      Although it didn't load subtitles for a video played from a network share. MX Player does that.

  • Kcls

    There is literally no reason whatsoever for them to be using maxSdkVersion. I have not seen a single other app that does. Why should they?

    • http://www.androidpolice.com/ Artem Russakovskii

      Why should they use this method? At least maxsdkversion wouldn't prevent the existing installs from working.

    • ShaunOfTheLive

      Except they're not using maxSdkVersion. I've decompiled the APK, and I'm not even sure how they're doing the check. It's not against SDK (API) version, because it worked on 4.4 but not 4.4.1 and 4.4.2, which all use SDK version 19. The only hardcoded version reference I can see in the source code is a check against the minimum, "2.3.6", and a check against SDK version 18 which is not a maximum, but just a conditional to run some other code.

  • Mike Reid

    Android 2.1 and later do not enforce maxSdkVersion, so an app software check is needed, though Play won't show it. From the referenced page:

    "Future versions of Android (beyond Android 2.0.1) will no
    longer check or enforce the maxSdkVersion attribute during
    installation or re-validation. Google Play will continue to use the attribute
    as a filter, however, when presenting users with applications available for
    download."

    My apps do some checks for root status and device, and may show a warning or prevent startup based on that. Despite my apps being VERY hardware dependent, there are people who never read the app description etc., then turn around and call my apps "crap" because it doesn't work on their phones that don't have the needed hardware.

    Google has a horrible negative option system for devs to declare device incompatibility. Instead of telling Google the 100 phones I DO support, I have to regularly MANUALLY parse/figure out the hundreds of new devices added every month and explicity disable them. Unfortunately Google makes a bit more money from people who buy apps that are incompatible with their phone. The dev takes the heat in the form of unsatisfied customers and Google has financial disincentive to fix this.

    • Sergii Pylypenko

      What if they would provide an API to the Developer Console so that you could upload apps / restrict devices in a command line or with a shell script?

  • dextersgenius

    Too little, too late, J2. Do you really expect your users to go thru this ordeal every time Android is updated? It's a freaking video player for crying out loud, you're not going to blow up our phones if we run it on an unsupported version of Android.

    Anyway, I've Switched to Dice Player and I'm not looking back. This is coming from an ex-premium user of MX.

    • http://petercast.net Peterson Silva

      Then again we could say: it's a freaking video player for crying out loud, do you have to be all sensitive about it?

      • CrazyManDan

        Given that we have paid for an app to play videos our devices do not support natively, I think we have a right to voice our frustration when we lose access to those media files for more than a week nearly every time there's an Android version bump, due solely to an artificial limitation built in by the developer.

        • http://petercast.net Peterson Silva

          Ok, you have a point.

    • CrazyManDan

      I tried Dice Player during this latest down time, but when I tried using their HTTP streaming, it was consistently laggy with an unacceptable amount of audio desync. I'll probably keep it around for the next time J2 decides to leave us hanging for weeks, as it can at least play local videos well, but I don't think I can quit MX completely.

      • https://plus.google.com/108596272537415356460/posts Jason Farrell

        DicePlayer is still the only player I use, and it's one of the ONLY players with a built-in windows-share browser. That, along with the speedup feature, and external libffmpeg.so support (for "illegal" DTS audio) is mainly why I stick with Dice.

        MX Player seemed more... bloaty... the last time I used it.

        Also, what do you http stream? Pretty much the only thing I stream via http is my own webcam from a VLC server.

        • CrazyManDan

          Mainly video content from GiantBomb.com. They have a mobile-optimized site, but it's still running in-browser. MX supports background audio, so I can use other apps while still listening to the content; Chrome won't even continue playing when you switch to another tab, so MX makes things a much better experience for me.

          One thing that was awesome about Dice was the pop-out player. One of my biggest complaints with stock Google Android vs PCs - something that is addressed by some OEM customizations - is the near complete inability to do two things side by side. MX's background audio at least means I can keep following the content without having to just stare at the video the entire time, but being able to pop the player out and scale it down to a corner over other apps is just about perfect.

          Unfortunately, I got a 16GB Nexus 7 back when 16GB was the largest they made; with much of GiantBomb's content being 3GB+ per video, I can't keep a lot of it stored locally, so HTTP streaming is how I consume it. Though I think it is about time for a new tablet anyway...

    • Cheeseball

      Dice Player is not exactly a great player itself, since it lacks proper subtitle rendering and can't render 720p Hi10P videos properly. At least you can externally load libffmpeg for DTS and AC3 though.

      • https://plus.google.com/108596272537415356460/posts Jason Farrell

        What exactly is wrong with Dice's 720p support? I've played thousands of videos without a problem, so apparently I just haven't run into any with the Hi10P profile, or, you're definition of "proper" playback is improper :)

        Actually, I must've run into some Hi10P stuff, because I've seen a few large-file anime in the past couple months (1080p Attack on Titan, ... and others forgotten). Maybe the issue you're having is h/w specific, as it's smooth sailing on my Nexus 7, SGS3, and Note3.

        • Cheeseball

          Basically, video discoloration when using DicePlayer's HW acceleration. This is not seen when using MX Player's HW/HW+ acceleration with 10-bit decoding enabled (although you get the same discoloration with it disabled). This is on a Nexus 7 2013 and Nexus 4.

          Also, DicePlayer's subtitle rendering doesn't seem to support custom typesetting with embedded fonts. It looks like they're adding that soon though along with VobSub support.

  • Jack

    Then why the *Police* in your name if you aren't gonna do some "policing"?

    • http://www.androidpolice.com/ Artem Russakovskii

      We do plenty of policing. Doesn't mean we should raise a stink about every issue without giving developers a chance to breathe.

  • Roemraw

    "Remember, we, the users, understand you may have to work through bugs, and we just want to stay updated, so the least you, the developer, can do is drop a few words here and there. You can do that, right? Awesome."

    You should say this to the public transit system. To the airports. To whatever decides to halt expected service without giving any notification.
    I hate being in a train which suddenly stops and gives no explanation but still says: "This won't take long, we'll be moving soon"

    Tell me what is causing the delay, tell me what you understand by soon. Give us some new information, because we already know you will try to get moving ASAP, soon isn't any information whatsoever!

  • sivkai

    "Then, one day a new version of Android hits, and a flood of 1-star reviews rolls in"

    Hmm.. If that's their reason for out an in-app system check, they need to think again. They are clearly getting far more 1-star reviews from this whole un-updated debacle.

    • http://www.androidpolice.com/ Artem Russakovskii

      Yeah, I agree that this is a worse solution to a problem that may not exist. Though, we haven't seen the converse - what would happen if they let people run it and it would crash all the time.

  • mark

    How damn difficult is it to put a continue anyway on the unsupported version dialog?

    We I stopped and used vlc beta instead. 10 days are too long. If you are going to lock out uses you need to update promptly.

  • Alvin Brinson

    Thing is, to update a version number and type "make" would have taken a few minutes. This showed incompetence.

    I switched to BS Player and am not looking back.

    • http://www.androidpolice.com/ Artem Russakovskii

      First of all, you don't Make Android apps.

      Second of all, how do you know there were no changes required? Android 4.4.1 was a pretty big release. Plus, they needed to acquire a 4.4.1 build to test on, preferably on multiple devices, like phones and tablets.

      • AOSPrevails

        It is understandable to extensively test when a API level change occurs (4.2/4.3/4.4), but for bug fixing updates like 4.2.1/4.2.2/4.3.1/4.4.1/4.4.2 it just seem annoying and unnecessary(hence why 99.99% of android apps don't do what MX Player does and plenty of them gets higher rating than MX Player).

  • Mike C.

    MX Player is great. However instead of a dialog saying "Unsupported android version", the program should have said: "Unsupported android version - do you want to try to run the program anyway?"

    • Tomáš Petrík

      THIS TIMES MILLION!

    • Wesley Modderkolk

      problem is hardly any user reads any of such messages that pop up.

      • Tomáš Petrík

        But that's their problem.
        And for those who do - yay, working video player!

        • Wesley Modderkolk

          When it talks about the one star rating. Then it is still the developers problem.

          • Tomáš Petrík

            If you let people "try anyway", at least a part of them will play their files.
            But if you block playback completely, 0% of them will be able to play the files.
            Which of these situations do you think will generate more 1-star ratings?

          • Wesley Modderkolk

            True.

            I see the whole mechanism more as a safe guard. If the app simply did not work, then that would generate a lot of bad stuff. A not functional app is worse than a non updated app in my eyes. And I think this counts for a lot of people.

            It's still a one star rating, but it is less of a "I give you one star because my video will not play!!!!1!11111!!!"

            Still, the developer should have give more information to the community. on the delay and even a reasoning behind it. The devs did not and simply let the users in the dark.

          • Tomáš Petrík

            Agree that they should communicate the issue better.

    • http://www.androidpolice.com/ Artem Russakovskii

      The problem is that if there's an incompatibility that shows itself like 10 min later, users won't connect it to the warning and will leave 1 star anyway.

      • Tomáš Petrík

        Still, I think it is more acceptable than blocking playback altogether - which will generate more negative feedback and ratings than a possible error that may or may not occur.

        • danishdhanshe

          I think, The only 2 things that mostly give you 1 star are force closes and a laggy software
          And since they updated the app in a week since 4.4.2 came out, not many users would give them 1 star except for the impatient noobs!
          Giving an application 1 star just because devs could not update it in 24 hours is criminal!

          • Tomáš Petrík

            I'm not saying I did it, I didn't.
            But others could, out of impatience. That's why you should at least have the option to try anyway. If it fails, then you see it needs to be updated and wait. But if the only obstacle is an artificial version check and the app would work otherwise, I can feel with the impatient ones.

          • http://dennisbareis.com/ Dennis Bareis

            I suspect that people who don't believe apps should prevent you from using them periodically might also give it a low rating.

          • Roh_Mish

            True but you really don't know these noobs. (I recently had a great/comical encounters with a noob-situation and realised the thing we think is common enough to be understood is a big thing for them (I was many times surprised by my friends who had a "what?" Face but now I understand sometimes the ting so obvious to one person may be completely different for the other))

  • http://dennisbareis.com/ Dennis Bareis

    Warn the user, provide an override, not hard is it?

    • http://www.androidpolice.com/ Artem Russakovskii

      Yeah, I'm not saying their method is best, I'd much rather see this modified warning that would still let me run it.

  • Jesuslifestoryisajuvenilelie

    MX Player, why U no work with Android 4.4.1 and 4.4.2.

  • MeCampbell30

    "AP is not your personal army - we need to show developers some respect"

    Exactly. Good call.

  • Sergii Pylypenko

    MaxSdkVersion works only in Android 2.0.1 and below, any more recent version of Android ignores that value.
    http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#max

    • http://www.androidpolice.com/ Artem Russakovskii

      I meant more for new users who wouldn't be able to install it from the Play Store. Then existing users would still be able to start it. But then again, that's what they're trying to avoid.

      How about a crash wrapper that would pop up in case of a crash and warn about reporting the bug and not submitting a bad review? Kind of like acra.

  • mrjayviper

    I went to their google group to ask the question but someone beat to it. Their official response was "we're looking into it and expect a fix in the next few hours". but the reply happened days after I visited the google group. I have moved to vlx player. but going back to mx again! :D

  • Primalxconvoy

    Although the player itself works, the app itself (when the icon is clicked) never works on my ouya. I wish that was fixed.

  • smeddy

    Great article. Love MX, love AP

  • Tomáš Petrík

    I will just repeat my opinion on this:
    Without whitelisting, you have a 50/50 chance there will be a problem
    and frustrated users will leave bad comments. But with whitelisting, you
    have 100% of failed video playbacks, with all the users leaving bad
    comments, which is worse from my point of view.
    So letting the user choose if they want to try to play the video anyway should be the way to go.

  • Android Developer

    sadly this version, like all the rest, still has the same issues:

    1.doesn't show hebrew subtitles well (moves punctuations marks to the beginning of the sentance instead of to the end). thankfully, there is an app to fix it:
    https://play.google.com/store/apps/details?id=com.ladjn.hebrewsubtitlesfix

    2.doesn't show subtitles when connected via hdmi , unless software rendering is turned on. i think it works fine on android 4.3 and above, but i'm not sure.

    3.doesn't allow to turn off the device's screen when connected to HDMI.

    still, this is the best video player i can find.

    • blahmoomoo

      I'm pretty sure I can't turn off my Nexus 4's screen when connected via HDMI without also putting the phone (and HDMI output) to sleep, no matter what the app. Unless your phone can actually do that in some apps, it's probably a missing feature in Android, not an app problem.

      • Android Developer

        @blahmoomoo:disqus too bad, since the whole point of watching a video on the TV while being connected via HDMI, is that i don't need to watch it on the device...

        • blahmoomoo

          Yeah, I'd just put it face down at minimum brightness or something at that point. Too bad it still drains the battery though, since the SlimPort adapter seems to only deliver 500 mA of power, instead of around 1A, so the battery tends to slowly discharge while connected over HDMI.

          • Android Developer

            does it also mean that when the battery goes 0%, the device shuts down during the video playback?

          • blahmoomoo

            Never pushed it that far, but presumably it would get to a point where the battery dies and shuts off before undervolting. Then it would start actually charging.

          • Android Developer

            well that's a shame. it's a weird thing too, as it shows that it charges...
            same happens with my pc's front usb. it can send files fine, but instead of charging the device it actually drains the battery of it, that i sometimes use Airdroid to manage it.

          • blahmoomoo

            Indeed, the only way I can charge off of my laptop is to keep the phone's screen off. 500 mA just doesn't cut it otherwise. This is why some laptops come with a "charger" port that can do data and high power output.

            At least it still prolongs the charge...

    • http://petercast.net Peterson Silva

      About #3, I'm pretty sure I've seen an app for rooted users that will let you do that (for all apps, not just mx). I don't remember the name, though, sorry =(

  • CerealFTW

    Google needs to do a better job of teaching users the difference between a bug and a review. It's killing developers and though it's not Google's fault, I think they're the only ones who could do anything about it. Maybe seperate comments from devices that don't support the app

  • Maniac

    Latest update fixed MX Player on the Shield :)

  • Luis Barahona

    Yeah I had a similar problem with double twist they at least acknowledge the problem and gave access to a beta build and kept users up to date with google+.

  • http://www.kizi1.org/ Kizi 1

    thanks for share, i like it

  • Toss3

    We have BSPlayer, Diceplayer, etc. so who cares?

  • Funem

    It wouldn't have been so bad if they hadn't responded on their forums that they would be releasing an update later in the day then didn't,, followed by not updating people on the forums with a reason or providing a progress update.

  • Guest

    They really need a new hd icon for their app..

  • Ano

    I tested a lot of Videoplayers with all type video-formats on all (SGS1&3 and Nex7/13) devices. MX played less with Hardware decoding (=less battery use) and even som formats not at all. Dice Player played files MX wouldn't play and almost all HW-decoded. Further Dice much better looking and better user interface (and floating video also). And the option to add Samba-shares (add Windows-shares, Nas, WDTV Liv, etc. as local folders) and FTP-support (Play any USB-drive connected to router). I have kept MX as reserve app, but Dice much better. BsPlayer Free also great concerning file-support and samba, but I like the UI less.

  • Ano

    Dice also playes all files from my Mac Book Pro

  • G

    ...and they all rejoiced_____yay!!

  • A.Noid

    The Author said in the forums on his website that he would update us in a few hours, and a week later, the app is updated. Seems just a bit more than a few hours to me.

  • superdry

    XDA link from the MX Player forum - http://forum.xda-developers.com/showthread.php?p=48507042

    Turns out it wasn't a version check issue, but an updated module that caused an incompatability with the app. Still, would have been nice for the developer to let the people in the forum know about this and was hard at work updating the app.

  • Semlohenaid

    Hi, I'm having trouble with my Android mx box. I can go into a zip file and go to play a movie, but then it comes up with either script error or error 403. Then comes out of the movie or doesn't play at all. Any ideas how to resolve this, it's even happening on some TV series I have tried to watch.
    Many thanks
    Di