我已经实现了一个在后台运行音频的服务,该服务运行良好,但我无法从服务中获取 SimpleExoPlayer 的实例到活动以更新 UI 并且如果我退出并重新打开音频,则音频在后台播放两次活动。
音频播放器服务
public class AudioPlayerService extends Service {
private final IBinder mBinder = new LocalBinder();
private SimpleExoPlayer player;
private Item item;
private PlayerNotificationManager playerNotificationManager;
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onDestroy() {
playerNotificationManager.setPlayer(null);
player.release();
player = null;
super.onDestroy();
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
enter code here
public SimpleExoPlayer getplayerInstance() {
return player;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Bundle b = …
Run Code Online (Sandbox Code Playgroud) 我正在使用Firebase UI-Auth进行身份验证,但是在添加了分析依赖性之后,出现了此错误。空闲一段时间后,应用程序崩溃。有时它在重新启动几次后仍会在初次启动时崩溃。我也将所有库更新为最新版本,但这也无济于事。
致命异常:java.lang.NoSuchFieldError没有LCOM / google / android / gms / dyms / DynamiteModule $ VersionPolicy类型的字段PREFER_HIGHEST_OR_REMOTE_VERSION_NO_FORCE_STAGING;在Lcom / google / android / gms / dynamite / DynamiteModule类中;或其超类(“ com.google.android.gms.dynamite.DynamiteModule”的声明出现在base.apk中)
这是我的build.gradle
import com.google.gms.googleservices.GoogleServicesPlugin
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.26.1'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.hussain.podcastapp"
minSdkVersion 23
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
} …
Run Code Online (Sandbox Code Playgroud)