Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android activity alias issue #11

Open
ldemyanenko opened this issue Dec 10, 2024 · 2 comments
Open

Android activity alias issue #11

ldemyanenko opened this issue Dec 10, 2024 · 2 comments

Comments

@ldemyanenko
Copy link

ldemyanenko commented Dec 10, 2024

I'm implementing dynamic icon feature in the flutter project using dynamic_icon_lus plugin

On IOS everything works great. On Android and issue appears when I'm launching the app in debug mode from Android studio over the existing debug app with dynamically changed icon an issue appears.

The configured activity alias looks like this

    <!-- Alternate Icons -->
    <activity-alias
        android:name="${applicationId}.BlackFriday"
        android:enabled="false"
        android:exported="true"
        android:icon="@mipmap/alternative_launcher_icon"
        android:label="${appName}"
        android:theme="@style/LaunchTheme"
        android:targetActivity=".MainActivity">

        <meta-data
            android:name="io.flutter.embedding.android.NormalTheme"
            android:resource="@style/NormalTheme"
            />

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity-alias>

So I'm able to launch app first time from Android studio. Then the call

    await FlutterDynamicIconPlus.setAlternateIconName(
      iconName: alternativeIcon.isEmpty ? null : alternativeIcon,
      isSilent: true,
      blacklistBrands: ['Redmi'],
      blacklistManufactures: ['Xiaomi'],
      blacklistModels: ['Redmi 200A'],
    );

happens, where alternativeIcon = "BlackFriday".

I'm killing app manually and I can see the launch icon changes. I launch app again from Android studio and can see the error

2024-11-27 11:40:52.822 11968-11968 AndroidRuntime pid-11968 E  
FATAL EXCEPTION: main Process: com.eyewa.app.dev, PID: 11968 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.eyewa.app.dev/com.eyewa.app.dev.MainActivity}: 
java.lang.ClassNotFoundException: Didn't find class "com.eyewa.app.dev.MainActivity" on path: DexPathList[[zip file "/data/app/~~_gALSD2nZU7TZ7i3mJtlwg==/com.eyewa.app.dev-2YbCJicUl2b2LiIMvrYBCw==/base.apk"],nativeLibraryDirectories=[/data/app/~~_gALSD2nZU7TZ7i3mJtlwg==/com.eyewa.app.dev-2YbCJicUl2b2LiIMvrYBCw==/lib/arm64, /data/app/~~_gALSD2nZU7TZ7i3mJtlwg==/com.eyewa.app.dev-2YbCJicUl2b2LiIMvrYBCw==/base.apk!/lib/arm64-v8a, /system/lib64, /system/system_ext/lib64]]
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4048)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4312)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2571)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loopOnce(Looper.java:226)
    at android.os.Looper.loop(Looper.java:313)
    at android.app.ActivityThread.main(ActivityThread.java:8741)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.eyewa.app.dev.MainActivity" on path: DexPathList[[zip file "/data/app/~~_gALSD2nZU7TZ7i3mJtlwg==/com.eyewa.app.dev-2YbCJicUl2b2LiIMvrYBCw==/base.apk"],nativeLibraryDirectories=[/data/app/~~_gALSD2nZU7TZ7i3mJtlwg==/com.eyewa.app.dev-2YbCJicUl2b2LiIMvrYBCw==/lib/arm64, /data/app/~~_gALSD2nZU7TZ7i3mJtlwg==/com.eyewa.app.dev-2YbCJicUl2b2LiIMvrYBCw==/base.apk!/lib/arm64-v8a, /system/lib64, /system/system_ext/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:259)
at java.lang.ClassLoader.loadClass(ClassLoader.java:637)
at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:44)
at android.app.Instrumentation.newActivity(Instrumentation.java:1328)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4035)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4312) 
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101) 
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2571) 
at android.os.Handler.dispatchMessage(Handler.java:106) 
at android.os.Looper.loopOnce(Looper.java:226) 
at android.os.Looper.loop(Looper.java:313) 
at android.app.ActivityThread.main(ActivityThread.java:8741) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067) 
I appreciate any advice or comment.
@Tom1994123
Copy link

Is there a solution? I have the same problem.

@ir4ever
Copy link

ir4ever commented Jan 3, 2025

Android doesn't work for me. I'm using channels for work in Android, but the app need is closed for change the icon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants