0

我更新到 Android Studio 2.0 并用它调试了一个应用程序。我注意到调试应用程序不再列在菜单中的可启动应用程序中,并认为这可能是由于 Android Studio 2.0 的新即时运行功能。

然后,我生成了一个签名的版本 .apk 并将其上传到商店。两台测试设备安装了更新,但它们无法再启动该应用程序。它也没有在上述菜单中列出,Google Play 的唯一选择是“卸载”该应用程序,没有启动按钮。

我必须在哪里搜索此问题的原因以及如何解决?我已经检查了我的 AndroidManifest.xml 以将 Activity 标记为 Main:

    <activity
        android:name=".activities.LoginActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />

            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data android:scheme="myapp" />
        </intent-filter>
    </activity>
4

1 回答 1

2

你的问题是这样的:

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />

        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <data android:scheme="myapp" />
    </intent-filter>

你说这个活动需要满足三个条件:

  • 要么ACTION_VIEWACTION_MAIN
  • 要么CATEGORY_DEFAULT要么CATEGORY_BROWSABLE要么CATEGORY_LAUNCHER
  • myapp作为一个计划

主屏幕启动器不会myapp作为方案添加,因此主屏幕(和设置应用程序)无法启动此活动。

据推测,您想要的是<intent-filter>相同的两个独立元素<activity>

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />

        <data android:scheme="myapp" />
    </intent-filter>
于 2016-04-10T18:33:25.040 回答