com.ryanheise.audioservice.AudioServiceActivity cannot be cast to androidx.fragment.app.FragmentActivity

349 Views Asked by At

when i use just_audio_background and PsPdfKit together then this issue is coming just_audio_background needs

android:name="com.ryanheise.audioservice.AudioServiceActivity"

in androidManifest.xml

i tried to change

android:name="com.ryanheise.audioservice.AudioServiceActivity"

to android:name = ".MainActivity" and also tried

android:name = "io.flutter.embedding.android.FlutterAppCompatActivity"

but with these changes its not building from android and one more thing its working fine for ios

3

There are 3 best solutions below

0
On

Instead of modifying the android.name, you can implement in MainActivity:

import android.content.Context;
import com.ryanheise.audioservice.AudioServicePlugin;
import io.flutter.embedding.android.FlutterActivity;
import io.flutter.embedding.engine.FlutterEngine;


public class MainActivity extends FlutterActivity {
  @Override
  public FlutterEngine provideFlutterEngine(Context context) {
    return AudioServicePlugin.getFlutterEngine(context);
  }
}
0
On

If you use Kotlin, just update MainActivity.kt with this:

import android.content.Context
import com.ryanheise.audioservice.AudioServicePlugin
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine

class MainActivity : FlutterActivity() {
    @Override
    final public override fun provideFlutterEngine(context: Context): FlutterEngine {
        return AudioServicePlugin.getFlutterEngine(context)
    }
}
0
On

Check out the Custom Android Activity section on audio_service package.

docs:https://github.com/ryanheise/audio_service/tree/minor/audio_service#custom-android-activity

Basically, revert back your android:name to .MainActivity from com.ryanheise.audioservice.AudioServiceActivity

And have a MainActivity that extends AudioServiceActivity or AudioServiceFragmentActivity

import com.ryanheise.audioservice.AudioServiceActivity;

class MainActivity extends AudioServiceActivity {
    // ...
}

Kotlin version:

import com.ryanheise.audioservice.AudioServiceFragmentActivity;
import io.flutter.embedding.android.FlutterActivity

class MainActivity : AudioServiceFragmentActivity() {}