gpt4 book ai didi

Android:让一个 apk 启动另一个

转载 作者:行者123 更新时间:2023-11-30 03:14:16 24 4
gpt4 key购买 nike

我有两个应用程序,每个应用程序中都有一个 Activity ,第一个在您按下按钮时执行此操作:

final private static String START_APP_INTENT = "com.example.app1.START_APP2";
Intent intent = new Intent(START_APP_INTENT);
startActivity(intent);

第二个应用程序在其 android list 文件中具有以下内容:

    <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.app2.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="com.example.app1.START_APP2" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

当我按下按钮时,出现以下异常:

Caused by: android.content.ActivityNatFoundException: No Activity found to handle Intent { act=com.example.app1.START_APP2 }

我的 app2 有那个 intent 过滤器。为什么我会收到此异常?

最佳答案

你的 <intent-filter>不正确。你有这个:

    <intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="com.example.app1.START_APP2" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

你需要这个:

    <intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="com.example.app1.START_APP2" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>

第一个过滤器是为了让您的应用程序显示在可用应用程序列表中。第二个过滤器供其他应用程序使用。当应用程序调用 startActivity() Intent 中没有明确指定组件, Android 自动将 DEFAULT 类别添加到 Intent .由于您的 <intent-filter> 中没有 DEFAULT 类别,它不匹配,Android 无法找到合适的 Activity 来启动。

关于Android:让一个 apk 启动另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20412083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com