java - 如何成功导入具有所有依赖项的 AndroidX 包?

标签 java android libgdx

我正在编写一个简单的 libGDX 游戏,我想在其中添加背景音乐和音效。但问题是在尝试导入 androidx.media2.player.MediaPlayer 类时,Android studio 会提示一条消息

add dependency on androidx.media2:media2

已添加。

我尝试在 build.gradle 文件中为项目的 android 模块和核心模块添加所有依赖项,如下所示。

核心模块

apply plugin: "kotlin"

repositories {
    google()
    jcenter()
    mavenCentral()
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
    maven { url "https://oss.sonatype.org/content/repositories/releases/" }
}

dependencies {

    def media2_version = "1.0.0"
    def media_version = "1.1.0"


    implementation "androidx.media2:media2-session:$media2_version"
    implementation "androidx.media2:media2-widget:$media2_version"
    implementation "androidx.media2:media2-player:$media2_version"
    implementation "androidx.media:media:$media_version"
    implementation 'androidx.media2:media2:1.0.0-alpha04'
}
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

sourceSets.main.java.srcDirs = [ "src/" ]

对于安卓模块

android {
    buildToolsVersion "29.0.2"
    compileSdkVersion 29
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
            jniLibs.srcDirs = ['libs']
        }

    }
    packagingOptions {
        exclude 'META-INF/robovm/ios/robovm.xml'
    }
    defaultConfig {
        applicationId "com.gmanix.coinman.game"
        minSdkVersion 19
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {

    def media2_version = "1.0.0"
    def media_version = "1.1.0"


    implementation "androidx.media2:media2-session:$media2_version"
    implementation "androidx.media2:media2-widget:$media2_version"
    implementation "androidx.media2:media2-player:$media2_version"
    implementation "androidx.media:media:$media_version"
    implementation 'androidx.media2:media2:1.0.0-alpha04'
}

task copyAndroidNatives {
    doFirst {
        file("libs/armeabi/").mkdirs()
        file("libs/armeabi-v7a/").mkdirs()
        file("libs/arm64-v8a/").mkdirs()
        file("libs/x86_64/").mkdirs()
        file("libs/x86/").mkdirs()

        configurations.natives.files.each { jar ->
            def outputDir = null
            if (jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
            if (jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
            if(jar.name.endsWith("natives-armeabi.jar")) outputDir = file("libs/armeabi")
            if(jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
            if(jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")
            if(outputDir != null) {
                copy {
                    from zipTree(jar)
                    into outputDir
                    include "*.so"
                }
            }
        }
    }
}

当您在 Android Studio 中单击 alt+Enter 时,它会提示添加依赖项 androidx.media2:media2,当您选择该选项时。 Gradle 同步了几秒钟,当它完成时没有任何反应,仍然无法使用 MediaPlayer。

最佳答案

尝试删除

implementation 'androidx.media2:media2:1.0.0-alpha04'

可能是版本冲突。清项目。 实现应该在一个 gradle 中——如果这是一个模块项目,则首选 module:app。 Check this out.

关于java - 如何成功导入具有所有依赖项的 AndroidX 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58150228/

相关文章:

android - Android 2.2.1在音乐开始时崩溃()

Android:是否可以仅针对联系人同步阻止谷歌同步服务?

具有抽象父类(super class)的 Java ConcurrentModificationException

java - Apache Spark : Cannot find symbol error Using array_contains

java - Android checkbox.isChecked() 不能正常工作

java - 为什么使用 KML 数据检索适用于 Android 的 Google 路线不再有效?

java - 不同尺寸手机上的正交相机屏幕

java - 如何使用camel OnException将自定义对象发布到DLQ队列

java - java中的枚举-导致编译时错误的变量声明序列

java - MouseJointDef libgdx - 像愤怒的小鸟一样绘制轨迹线