【问题标题】:Android 7.1.2 implicit intent 'No apps can perform this action'Android 7.1.2 隐式意图“没有应用程序可以执行此操作”
【发布时间】:2017-04-21 22:41:22
【问题描述】:

仅在 android 7.1.2 上,如果我在同一设备上安装了多个我的应用变体,我将无法在我的应用中启动隐式 Intent。

我有同一个应用程序的多个应用程序变体,每个应用程序具有不同的 applicationId,但具有相同的 java 包。

在 build.gradle 中:

android {
defaultConfig.applicationId 'com.myapp.appid'
buildTypes {
    debug.applicationIdSuffix 'foo'
    beta.applicationIdSuffix 'bar'
}}

在 AndroidManifest.xml 中,我定义了一个活动,我将在我的应用程序中隐式启动它

<?xml version="1.0" encoding="utf-8"?>
<manifest
        package="com.myapp.mypackage">
    <application
            android:name="com.myapp.mypackage.MyApplication">
        <activity
            android:name="com.myapp.mypackage.MyActivity">
                <intent-filter>
                    <action android:name="com.myapp.mypackage.MyActivity" />
                    <category android:name="android.intent.category.DEFAULT"/>
                </intent-filter>
        </activity>
    </application>
</manifest>

我在 java 中这样开始这个活动:

Intent i = new Intent();
i.setAction("com.myapp.mypackage.MyActivity");
ActivityCompat.startActivity( activity, intent, bundle );

在同一设备上安装“调试”和“测试版”构建类型后,7.1.2 之前的 startActivity 可以正常工作,用户甚至无需选择应用程序来处理 ResolveActivity 中的意图。现在在 7.1.2 中,ResolveActivity 应用选择器打开为空并显示“没有应用可以执行此操作。”

当我观察结果时

getPackageManager().queryIntentActivities( i, PackageManager.MATCH_DEFAULT_ONLY );

我确实看到了两个已安装的版本

com.myapp.appid.foo/com.myapp.mypackage.MyActivity
com.myapp.appid.bar/com.myapp.mypackage.MyActivity

But the user cannot proceed

【问题讨论】:

  • 尝试给你的应用一个名字标签
  • 谢谢阿拉什。我的应用程序确实有一个名称标签。为了简洁起见,我只是把它留在了这里。很抱歉造成混乱。
  • 这是 Android 中的一个错误。此处已报道:issuetracker.google.com/issues/37576886

标签: android android-intent android-activity android-support-library android-7.1-nougat


【解决方案1】:

我们遇到了类似的情况,多个应用变体使用相同的 Java 包并通过隐式意图启动活动。

最后,最简单的解决方案是将隐式意图搜索限制在当前应用:

Intent i = new Intent();
i.setAction("com.myapp.mypackage.MyActivity");
i.setPackage(context.getPackageName());
...

【讨论】:

    【解决方案2】:

    我看到了同样的问题。我能够通过切换到显式意图来修复它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多