【问题标题】:Cannot resolve method; possible dependency issue无法解析方法;可能的依赖问题
【发布时间】:2018-09-07 17:33:43
【问题描述】:

在过去的 2 个小时里,我一直在尝试解决这个问题。我正在使用 MediaBrowsterCompat.ConnectionCallback 并且我想使用 setSupportedMediaController() 和 getSupportedMediaController() 方法,但是无论我在 gradle 中导入或实现什么,它们都不会出现。我引用了code from github,据我所知,我拥有我需要的一切。还是不行。

有问题的代码:

class MediaConnectionCallback extends MediaBrowserCompat.ConnectionCallback {
    @Override
    public void onConnected() {
        super.onConnected();
        try {
            mMediaControllerCompat = new MediaControllerCompat(MainActivity.this, mMediaBrowserCompat.getSessionToken());
            mMediaControllerCompat.registerCallback(controllerCallback);
            setSupportMediaController(mMediaControllerCompat);
            getSupportMediaController().getTransportControls().playFromMediaId(String.valueOf(R.raw.song), null);

        } catch( RemoteException e ) {

        }
    }
}

我的毕业生:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.dalcourt.jonathan.testaudio"
        minSdkVersion 26
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:28.0.0-rc02'
    implementation 'com.android.support:support-v13:28.0.0-rc02'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.android.support:support-v4:28.0.0-rc02'
}

他们的毕业生:

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.2"

    defaultConfig {
        applicationId "com.tutsplus.backgroundaudio"
        minSdkVersion 16
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

依赖{ 编译 fileTree(dir: 'libs', include: ['*.jar']) 测试编译'junit:junit:4.12' 编译'com.android.support:appcompat-v7:24.2.1' 编译'com.android.support:support-v13:24.2.1'

}

我将他们的项目导入 ADS 并查看方法的来源,它是 android.support.v4.app.FragmentActivity。我已经尝试导入该软件包的每个版本,但仍然没有用。

【问题讨论】:

    标签: java android-studio gradle


    【解决方案1】:

    正如您在以下官方链接中看到的那样,MediaBrowserCompat.ConnectionCallback 中没有 setSupportedMediaController()getSupportedMediaController() 方法

    https://developer.android.com/reference/android/support/v4/media/MediaBrowserCompat.ConnectionCallback

    FragmentActivity.setSupportMediaController() 和 FragmentActivity.getSupportMediaController() 已被删除。请 使用新的静态 MediaControllerCompat.setMediaController() 和 MediaControllerCompat.getMediaController() 方法。

    您可以使用这些方法:

    MediaControllerCompat.getMediaController(activity)
    MediaControllerCompat.setMediaController()
    

    【讨论】:

    • 我明白了,为什么我要关闭的 git 代码起作用了?他们仍然使用片段活动方法。是因为我使用的是新库吗?
    • @JonDal 这是因为您使用的是较新的“android 支持库”,他们使用的是版本 24,而您使用的是版本 28。
    【解决方案2】:

    作为接受的答案,您可以使用like,

    设置:

    MediaControllerCompat.setMediaController(MainActivity.this, mMediaControllerCompat);
    

    得到:

    MediaControllerCompat.getMediaController(MainActivity.this).getTransportControls().pause();
    

    【讨论】:

      猜你喜欢
      • 2017-11-13
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      • 2017-04-10
      • 2011-12-08
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      相关资源
      最近更新 更多