我正在编写一个简单的 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/