Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ionic 4 cordova-plugin-music-controls breaks build #145

Open
Dzivo opened this issue Feb 7, 2019 · 14 comments · May be fixed by #154
Open

Ionic 4 cordova-plugin-music-controls breaks build #145

Dzivo opened this issue Feb 7, 2019 · 14 comments · May be fixed by #154

Comments

@Dzivo
Copy link

Dzivo commented Feb 7, 2019

In Ionic 4 this plugin breaks build with message:

error: package android.support.v4.media.session does not exist
import android.support.v4.media.session.MediaSessionCompat;

package.json

{
  "name": "radio-stream-ionic",
  "version": "0.0.1",
  "author": "Ionic Framework",
  "homepage": "https://ionicframework.com/",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/cdk": "7.2.1",
    "@angular/common": "7.2.3",
    "@angular/core": "7.2.3",
    "@angular/forms": "7.2.3",
    "@angular/http": "7.2.3",
    "@angular/platform-browser": "7.2.3",
    "@angular/platform-browser-dynamic": "7.2.3",
    "@angular/router": "7.2.3",
    "@ionic-native/app-version": "5.0.0",
    "@ionic-native/background-mode": "5.0.0",
    "@ionic-native/core": "5.0.0",
    "@ionic-native/http": "5.0.0",
    "@ionic-native/music-controls": "5.0.0",
    "@ionic-native/splash-screen": "5.0.0",
    "@ionic-native/status-bar": "5.0.0",
    "@ionic/angular": "4.0.0",
    "cordova-android": "7.1.4",
    "cordova-plugin-advanced-http": "2.0.4",
    "cordova-plugin-app-version": "0.1.9",
    "cordova-plugin-background-mode": "0.7.2",
    "cordova-plugin-device": "2.0.2",
    "cordova-plugin-file": "6.0.1",
    "cordova-plugin-ionic-keyboard": "2.1.3",
    "cordova-plugin-ionic-webview": "3.1.2",
    "cordova-plugin-music-controls": "2.2.0",
    "cordova-plugin-splashscreen": "5.0.2",
    "cordova-plugin-statusbar": "2.4.2",
    "cordova-plugin-whitelist": "1.3.3",
    "core-js": "2.5.4",
    "rxjs": "6.3.3",
    "zone.js": "0.8.29"
  },
  "devDependencies": {
    "@angular-devkit/architect": "0.12.3",
    "@angular-devkit/build-angular": "0.12.3",
    "@angular-devkit/core": "7.2.3",
    "@angular-devkit/schematics": "7.2.3",
    "@angular/cli": "7.2.3",
    "@angular/compiler": "7.2.3",
    "@angular/compiler-cli": "7.2.3",
    "@angular/language-service": "7.2.3",
    "@ionic/angular-toolkit": "1.3.0",
    "@types/node": "10.12.0",
    "@types/jasmine": "2.8.8",
    "@types/jasminewd2": "2.0.3",
    "codelyzer": "4.5.0",
    "jasmine-core": "2.99.1",
    "jasmine-spec-reporter": "4.2.1",
    "karma": "3.1.4",
    "karma-chrome-launcher": "2.2.0",
    "karma-coverage-istanbul-reporter": "2.0.1",
    "karma-jasmine": "1.1.2",
    "karma-jasmine-html-reporter": "0.2.2",
    "protractor": "5.4.0",
    "ts-node": "8.0.0",
    "tslint": "5.12.0",
    "typescript": "3.1.6"
  },
  "description": "An Ionic project",
  "cordova": {
    "plugins": {
      "cordova-plugin-statusbar": {},
      "cordova-plugin-background-mode": {},
      "cordova-plugin-app-version": {},
      "cordova-plugin-advanced-http": {},
      "cordova-plugin-music-controls": {},
      "cordova-plugin-whitelist": {},
      "cordova-plugin-device": {},
      "cordova-plugin-splashscreen": {},
      "cordova-plugin-ionic-webview": {
        "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
      },
      "cordova-plugin-ionic-keyboard": {}
    },
    "platforms": [
      "android"
    ]
  }
}

config.xml

<?xml version='1.0' encoding='utf-8'?>
<widget id="io.ionic.starter" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>MyApp</name>
    <description>An awesome Ionic/Cordova app.</description>
    <author email="hi@ionicframework" href="http://ionicframework.com/">Ionic Framework Team</author>
    <content src="index.html" />
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <preference name="android-minSdkVersion" value="19" />
    <preference name="ScrollEnabled" value="false" />
    <preference name="BackupWebStorage" value="none" />
    <preference name="SplashMaintainAspectRatio" value="true" />
    <preference name="FadeSplashScreenDuration" value="300" />
    <preference name="SplashShowOnlyFirstTime" value="false" />
    <preference name="SplashScreen" value="screen" />
    <preference name="SplashScreenDelay" value="3000" />
    <platform name="android">
        <allow-intent href="market:*" />
        <icon density="ldpi" src="resources/android/icon/drawable-ldpi-icon.png" />
        <icon density="mdpi" src="resources/android/icon/drawable-mdpi-icon.png" />
        <icon density="hdpi" src="resources/android/icon/drawable-hdpi-icon.png" />
        <icon density="xhdpi" src="resources/android/icon/drawable-xhdpi-icon.png" />
        <icon density="xxhdpi" src="resources/android/icon/drawable-xxhdpi-icon.png" />
        <icon density="xxxhdpi" src="resources/android/icon/drawable-xxxhdpi-icon.png" />
        <splash density="land-ldpi" src="resources/android/splash/drawable-land-ldpi-screen.png" />
        <splash density="land-mdpi" src="resources/android/splash/drawable-land-mdpi-screen.png" />
        <splash density="land-hdpi" src="resources/android/splash/drawable-land-hdpi-screen.png" />
        <splash density="land-xhdpi" src="resources/android/splash/drawable-land-xhdpi-screen.png" />
        <splash density="land-xxhdpi" src="resources/android/splash/drawable-land-xxhdpi-screen.png" />
        <splash density="land-xxxhdpi" src="resources/android/splash/drawable-land-xxxhdpi-screen.png" />
        <splash density="port-ldpi" src="resources/android/splash/drawable-port-ldpi-screen.png" />
        <splash density="port-mdpi" src="resources/android/splash/drawable-port-mdpi-screen.png" />
        <splash density="port-hdpi" src="resources/android/splash/drawable-port-hdpi-screen.png" />
        <splash density="port-xhdpi" src="resources/android/splash/drawable-port-xhdpi-screen.png" />
        <splash density="port-xxhdpi" src="resources/android/splash/drawable-port-xxhdpi-screen.png" />
        <splash density="port-xxxhdpi" src="resources/android/splash/drawable-port-xxxhdpi-screen.png" />
    </platform>
    <platform name="ios">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
        <icon height="57" src="resources/ios/icon/icon.png" width="57" />
        <icon height="114" src="resources/ios/icon/[email protected]" width="114" />
        <icon height="40" src="resources/ios/icon/icon-40.png" width="40" />
        <icon height="80" src="resources/ios/icon/[email protected]" width="80" />
        <icon height="120" src="resources/ios/icon/[email protected]" width="120" />
        <icon height="50" src="resources/ios/icon/icon-50.png" width="50" />
        <icon height="100" src="resources/ios/icon/[email protected]" width="100" />
        <icon height="60" src="resources/ios/icon/icon-60.png" width="60" />
        <icon height="120" src="resources/ios/icon/[email protected]" width="120" />
        <icon height="180" src="resources/ios/icon/[email protected]" width="180" />
        <icon height="72" src="resources/ios/icon/icon-72.png" width="72" />
        <icon height="144" src="resources/ios/icon/[email protected]" width="144" />
        <icon height="76" src="resources/ios/icon/icon-76.png" width="76" />
        <icon height="152" src="resources/ios/icon/[email protected]" width="152" />
        <icon height="167" src="resources/ios/icon/[email protected]" width="167" />
        <icon height="29" src="resources/ios/icon/icon-small.png" width="29" />
        <icon height="58" src="resources/ios/icon/[email protected]" width="58" />
        <icon height="87" src="resources/ios/icon/[email protected]" width="87" />
        <icon height="1024" src="resources/ios/icon/icon-1024.png" width="1024" />
        <splash height="1136" src="resources/ios/splash/Default-568h@2x~iphone.png" width="640" />
        <splash height="1334" src="resources/ios/splash/Default-667h.png" width="750" />
        <splash height="2208" src="resources/ios/splash/Default-736h.png" width="1242" />
        <splash height="1242" src="resources/ios/splash/Default-Landscape-736h.png" width="2208" />
        <splash height="1536" src="resources/ios/splash/Default-Landscape@2x~ipad.png" width="2048" />
        <splash height="2048" src="resources/ios/splash/Default-Landscape@~ipadpro.png" width="2732" />
        <splash height="768" src="resources/ios/splash/Default-Landscape~ipad.png" width="1024" />
        <splash height="2048" src="resources/ios/splash/Default-Portrait@2x~ipad.png" width="1536" />
        <splash height="2732" src="resources/ios/splash/Default-Portrait@~ipadpro.png" width="2048" />
        <splash height="1024" src="resources/ios/splash/Default-Portrait~ipad.png" width="768" />
        <splash height="960" src="resources/ios/splash/Default@2x~iphone.png" width="640" />
        <splash height="480" src="resources/ios/splash/Default~iphone.png" width="320" />
        <splash height="2732" src="resources/ios/splash/Default@2x~universal~anyany.png" width="2732" />
    </platform>
    <plugin name="cordova-plugin-whitelist" spec="1.3.3" />
    <plugin name="cordova-plugin-device" spec="2.0.2" />
    <plugin name="cordova-plugin-splashscreen" spec="5.0.2" />
    <plugin name="cordova-plugin-ionic-webview" spec="^3.0.0" />
    <plugin name="cordova-plugin-ionic-keyboard" spec="^2.0.5" />
    <plugin name="cordova-plugin-statusbar" spec="2.4.2" />
    <plugin name="cordova-plugin-background-mode" spec="0.7.2" />
    <plugin name="cordova-plugin-app-version" spec="0.1.9" />
    <plugin name="cordova-plugin-advanced-http" spec="2.0.4" />
    <engine name="android" spec="7.1.4" />
</widget>

@paulovargatt
Copy link

Same error for version 2.2.0,

try
remove this plugin

ionic cordova plugin rm cordova-plugin-music-controls
add this plugin

ionic cordova plugin add https://github.com/amitkhare/cordova-music-controls-plugin --save

@ghenry22
Copy link
Contributor

ghenry22 commented Feb 8, 2019

Or try adding the gradle release plugin. It works to resolve conflicting support library versions between different plugins at build time.

@DanielTizon
Copy link

DanielTizon commented Feb 23, 2019

I have the same problem. It is working with the old version of cordova-music-controls-plugin

https://github.com/amitkhare/cordova-music-controls-plugin

But it doesn't work with the current cordova-music-controls-plugin, showing a lot of errors like this when I compile with this version of MusicControls:

error: package android.support.v4.media does not exist import android.support.v4.media.MediaMetadataCompat;

@tbergeron
Copy link

@paulovargatt
I've seen this repo everywhere, since 2017. Please explain WHY we should use it.
WHY should we switch from this up-to-date repo here to this old fork? WHY should this fix our issue?

Every time I tested this repo, I had random errors like:

        Error: Cannot find plugin.xml for plugin "ionic-audio". Please try adding it again.

Please instead of repeating what you read on a random board/issue, explain why and how this should resolve our issue. Beware of just telling everybody to use any fork: it may contain altered code and cause security issues.

There's a reason THIS repo isn't working at the moment, why couldn't we simply debug this one???

@tbergeron
Copy link

@DanielTizon to resolve the Android v4 issues, install this plugin here cordova-plugin-android-support-v4 it fixed them for me. Also make sure your Android Studio/SDK/whatever are all up-to-date. Sometimes I noticed if my libraries were old it caused issues with my builds. Hope it helps!

@tbergeron
Copy link

@Dzivo advice here ^^ applies to OP too

@paulovargatt
Copy link

@tbergeron I recommended the plugin in question because it was the only one that solved my problem of build in both platforms, for the updated version "homerours" I and many other users receive several errors at the time of the build without recommendations on how to solve ...

@NorthFred
Copy link

Many thanks @tbergeron. That indeed solves the plugin addition problems.
For others: note that at the moment the npm registry does not refer to "cordova-music-controls-plugin", so you have to add the plugin via "ionic cordova plugin add https://github.com/homerours/cordova-music-controls-plugin.git"

@alloyking
Copy link

I had luck adding this plugin cordova plugin add cordova-plugin-android-support-v4-jar
If in the past you have tried to solve this with the non -jar version. It may not have worked. Which was exactly my issue

@danpastori danpastori linked a pull request May 22, 2019 that will close this issue
@madmandrew
Copy link

This is still an issue. None of the above fixes worked. I've tried with a fresh empty project and still doesn't work

@fdambrosio
Copy link

I have the same problem trying to upgrade to ionic 4

@javier-gm
Copy link

javier-gm commented Aug 20, 2019

Adding this to my project.properties file, solved the problem for me in Ionic 3

cordova.system.library.1=com.android.support:support-annotations:27.+
cordova.system.library.2=com.android.support:support-media-compat:27.+

@fdambrosio
Copy link

thanks @javier-gm !! it works with Ionic3 + Cordova-Android8 (sdk28) too:

cordova.system.library.1=com.android.support:support-annotations:28.+
cordova.system.library.2=com.android.support:support-media-compat:28.+

@Ekaanth
Copy link

Ekaanth commented Feb 17, 2020

I have the same problem. It is working with the old version of cordova-music-controls-plugin

https://github.com/amitkhare/cordova-music-controls-plugin

But it doesn't work with the current cordova-music-controls-plugin, showing a lot of errors like this when I compile with this version of MusicControls:

error: package android.support.v4.media does not exist import android.support.v4.media.MediaMetadataCompat;

HI, I got the same issue, so I made a fork and fixed the plugin that works for both IOS 13 and android 10 tested.
you can use my plugin

cordova plugin add https://github.com/Ekaanth/cordova-music-controls-plugin

thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.