yimyo2000's avatar
yimyo2000
Copper Contributor
Jun 25, 2024
Status:
Closed

When I use Context.startActivity on Android to call com.microsoft.rdc.androidx, I encounter an Error

When I use Context.startActivity on Android to call com.microsoft.rdc.androidx, I encounter an ActivityNotFoundException. The error message is:

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.microsoft.rdc.androidx/com.microsoft.rdc.ui.activities.HomeActivity}; have you declared this activity in your AndroidManifest.xml, or does your intent not match its declared <intent-filter>?

Before calling Context.startActivity, I have already confirmed that the user has Remote Desktop installed on their phone. However, this issue still occurs on certain devices (e.g., AQUOS Sense / Android 13 / RAM: 4GB). I would like to ask what might be causing this issue or what aspects I should check. Thank you.

4 Comments

  • We are sorry you are running into issues. To discuss issues we recommend to share your problem on our Tech Community forum (https://aka.ms/wvdtc) or open a support ticket after you have reviewed the troubleshooting options in our documentation (Windows Virtual Desktop troubleshooting overview - Azure | Microsoft Docs)


    We recommend to review our troubleshooting section first. The other option you have is to open a support ticket through the Azure Portal.

  • yimyo2000's avatar
    yimyo2000
    Copper Contributor

    Thank you very much for your reply. You provided a good direction, but my issue is a bit more complicated. Since com.microsoft.rdc.androidx is from Microsoft’s Azure Remote Desktop, I cannot modify the AndroidManifest.xml of com.microsoft.rdc.androidx. My goal is to use Context.startActivity in my app to invoke Remote Desktop. However, an ActivityNotFoundException occurs on specific devices. I would like to know the possible causes and any potential solutions for this issue.

  • DTB's avatar
    DTB
    Iron Contributor

    Hi,

     

    The ActivityNotFoundException typically occurs when the specified activity is not found in the AndroidManifest.xml or the intent filter does not match. Here are some steps to diagnose and resolve this issue:

     

    Step-by-Step Troubleshooting Guide

    1. Check the AndroidManifest.xml

    Ensure that the HomeActivity is declared in the AndroidManifest.xml of the com.microsoft.rdc.androidx package.

     

    <activity android:name=".ui.activities.HomeActivity">
        <!-- Add intent filters if necessary -->
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

     

     

    2. Verify the Intent

    Ensure that the intent you are using to start the activity is correctly formed and matches the intent filter defined in the AndroidManifest.xml.

     

    Intent intent = new Intent();
    intent.setClassName("com.microsoft.rdc.androidx", "com.microsoft.rdc.ui.activities.HomeActivity");
    startActivity(intent);

     

     

    3. Check for Package and Class Name Typos

    Make sure there are no typos in the package name and class name. They should exactly match the declarations in the AndroidManifest.xml.

     

     

    4. Confirm Application Installation

    Although you mentioned that Remote Desktop is installed, confirm the exact package name and that the version installed on the device includes the HomeActivity.

     

    try {
        ApplicationInfo info = getPackageManager().getApplicationInfo("com.microsoft.rdc.androidx", 0);
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
        // Handle the case where the app is not installed
    }

     

     

    5. Handle Different Device Configurations

    Some devices may have specific configurations or limitations. Ensure the activity is compatible with the device's Android version and screen size.

     

    6. Check for Runtime Permissions

    Ensure that all necessary permissions are granted at runtime, especially for devices running Android 6.0 (Marshmallow) and above.

     

    Example Code for Starting Activity

    Here is an example to verify and start the activity:

     

    try {
        Intent intent = new Intent();
        intent.setClassName("com.microsoft.rdc.androidx", "com.microsoft.rdc.ui.activities.HomeActivity");
        if (intent.resolveActivity(getPackageManager()) != null) {
            startActivity(intent);
        } else {
            // Handle the case where the activity cannot be found
            Log.e("ActivityNotFound", "Activity not found");
        }
    } catch (ActivityNotFoundException e) {
        e.printStackTrace();
        // Additional error handling
    }

     

     

    Conclusion

    By following these steps, you should be able to diagnose and resolve the ActivityNotFoundException. Ensure that the activity is correctly declared in the AndroidManifest.xml, the intent is properly formed, and all necessary permissions are granted.

     

    If the issue persists, consider reaching out with specific details about the devices and configurations for further assistance.

     

    Best regards,

    Daniel