AmolGangadhare / flutter_barcode_scanner

Barcode scanner plugin for flutter. Supports barcode scanning for Android and iOS
https://pub.dev/packages/flutter_barcode_scanner
MIT License
379 stars 451 forks source link

com.package.MainActivity cannot be cast to io.flutter.embedding.android.FlutterActivity #128

Open Rayv1 opened 3 years ago

Rayv1 commented 3 years ago

Because of some of my Plugins, i have to use FlutterFragmentActivity instead of FlutterActivity.

Unfortunately the Plugin is not working then.

Error:

E/AndroidRuntime(18103): java.lang.ClassCastException: de.fitasy.MainActivity cannot be cast to io.flutter.embedding.android.FlutterActivity
E/AndroidRuntime(18103):    at com.amolg.flutterbarcodescanner.FlutterBarcodeScannerPlugin.createPluginSetup(FlutterBarcodeScannerPlugin.java:248)
E/AndroidRuntime(18103):    at com.amolg.flutterbarcodescanner.FlutterBarcodeScannerPlugin.onAttachedToActivity(FlutterBarcodeScannerPlugin.java:275)
E/AndroidRuntime(18103):    at io.flutter.embedding.engine.FlutterEnginePluginRegistry.add(FlutterEnginePluginRegistry.java:143)
E/AndroidRuntime(18103):    at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:26)
E/AndroidRuntime(18103):    at de.fitasy.MainActivity.configureFlutterEngine(MainActivity.kt:10)
E/AndroidRuntime(18103):    at io.flutter.embedding.android.FlutterFragment.configureFlutterEngine(FlutterFragment.java:950)
E/AndroidRuntime(18103):    at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onAttach(FlutterActivityAndFragmentDelegate.java:181)
E/AndroidRuntime(18103):    at io.flutter.embedding.android.FlutterFragment.onAttach(FlutterFragment.java:582)
E/AndroidRuntime(18103):    at androidx.fragment.app.Fragment.performAttach(Fragment.java:2574)
E/AndroidRuntime(18103):    at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:828)
E/AndroidRuntime(18103):    at androidx.fragment.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1197)
E/AndroidRuntime(18103):    at androidx.fragment.app.FragmentTransition.calculateFragments(FragmentTransition.java:1080)
E/AndroidRuntime(18103):    at androidx.fragment.app.FragmentTransition.startTransitions(FragmentTransition.java:119)
E/AndroidRuntime(18103):    at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1866)
E/AndroidRuntime(18103):    at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824)
koyadovic commented 3 years ago

In file FlutterBarcodeScannerPlugin.java

I've modified all reference to FlutterActivity to FlutterFragmentActivity and now it works.

This is a workaround that works for me.

joonolee commented 3 years ago

I also have same issue.

I am using the local_auth package.

Rayv1 commented 3 years ago

@joonolee look at @koyadovic comment. I also did it and it works like charme.

joonolee commented 3 years ago

@Rayv1 Thank you!

cobategit commented 3 years ago

In file FlutterBarcodeScannerPlugin.java

I've modified all reference to FlutterActivity to FlutterFragmentActivity and now it works.

This is a workaround that works for me.

thx, this is work, but i have info like this in terminal

Note: C:\flutter\.pub-cache\hosted\pub.dartlang.org\flutter_barcode_scanner-1.0.1\android\src\main\java\com\amolg\flutterbarcodescanner\BarcodeCaptureActivity.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details. Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details.

pradt commented 3 years ago

Thanks @koyadovic that worked like a treat.

pradt commented 3 years ago

Unfortunately I upgraded SDK to 2.10 and version of the barcode scanner to ^2.0.0 and I'm receiving this error as well :

MainActivity.kt

import androidx.annotation.NonNull;
import io.flutter.embedding.android.FlutterFragmentActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant

class MainActivity: FlutterFragmentActivity() {
    override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
        GeneratedPluginRegistrant.registerWith(flutterEngine);
    }
}

Error being produced :

E/AndroidRuntime(10502): FATAL EXCEPTION: main
E/AndroidRuntime(10502): Process: com.package.app, PID: 10502
E/AndroidRuntime(10502): java.lang.ClassCastException: com.package.app.MainActivity cannot be cast to io.flutter.embedding.android.FlutterActivity
E/AndroidRuntime(10502):    at com.amolg.flutterbarcodescanner.FlutterBarcodeScannerPlugin.createPluginSetup(FlutterBarcodeScannerPlugin.java:248)
E/AndroidRuntime(10502):    at com.amolg.flutterbarcodescanner.FlutterBarcodeScannerPlugin.onAttachedToActivity(FlutterBarcodeScannerPlugin.java:275)
E/AndroidRuntime(10502):    at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.add(FlutterEngineConnectionRegistry.java:153)
E/AndroidRuntime(10502):    at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:28)
pradt commented 3 years ago

Alright my one is now resolved. I had rename FlutterActivity to FlutterFragmentActivity in the new 2.0.0 folder.

chubzchoc commented 3 years ago

Thanks it works for me. I've been stuck on this issue for 3 days.

abhishekgokavarapu-abzy commented 3 years ago

I have the same issue, i am using the flutter_barcode_scanner package with local_auth.

Can someone please help me out with a workaround for now..

Process: com.serviceit.resolvev2, PID: 9864 07-29 00:29:52.363 9864 9864 E AndroidRuntime: java.lang.ClassCastException: com.serviceit.resolvev2.MainActivity cannot be cast to io.flutter.embedding.android.FlutterActivity 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at com.amolg.flutterbarcodescanner.FlutterBarcodeScannerPlugin.createPluginSetup(FlutterBarcodeScannerPlugin.java:248) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at com.amolg.flutterbarcodescanner.FlutterBarcodeScannerPlugin.onAttachedToActivity(FlutterBarcodeScannerPlugin.java:275) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.add(FlutterEngineConnectionRegistry.java:153) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:16) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at com.serviceit.resolvev2.MainActivity.configureFlutterEngine(MainActivity.kt:9) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at io.flutter.embedding.android.FlutterFragment.configureFlutterEngine(FlutterFragment.java:1023) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onAttach(FlutterActivityAndFragmentDelegate.java:180) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at io.flutter.embedding.android.FlutterFragment.onAttach(FlutterFragment.java:609) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at androidx.fragment.app.Fragment.performAttach(Fragment.java:2922) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at androidx.fragment.app.FragmentStateManager.attach(FragmentStateManager.java:464) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3136) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:3070) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:251) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:501) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1425) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at android.app.Activity.performStart(Activity.java:7825) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3294) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7356) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 07-29 00:29:52.363 9864 9864 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)

mono0926 commented 3 years ago

211 should be merged.

fmancusomilite commented 2 years ago

In file FlutterBarcodeScannerPlugin.java

I've modified all reference to FlutterActivity to FlutterFragmentActivity and now it works.

This is a workaround that works for me.

Thanks for solution, but where is this file?? Thanks

deep-iconflux commented 2 years ago

but where is this file?? Thanks

fmancusomilite commented 2 years ago

but where is this file?? Thanks

.pub-cache/hosted/pub.dartlang.org/flutter_barcode_scanner-2.0.0/android/src/main/java/com/amolg/flutterbarcodescanner

ixre commented 2 years ago

remove android:name="" of android node to fix it.

farr64 commented 2 years ago

Which specific file of "android node" do you mean?

Thanks.

TunmiseAyeni commented 2 months ago

In file FlutterBarcodeScannerPlugin.java

I've modified all reference to FlutterActivity to FlutterFragmentActivity and now it works.

This is a workaround that works for me.

sorry where is this file?