Android:安装APK后,打开按钮被禁用

时间:2016-03-18 12:11:25

标签: android android-activity android-manifest

我在很多地方读到这个问题与清单和第一个活动的定义有关。看起来我做得很好但是在安装APK之后仍然打开按钮被禁用,而且我没有看到设备上的图标

<application
    android:allowBackup="false"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/google_maps_key" />

    <activity
        android:name=".MapsActivity"
        android:label="@string/title_activity_maps">
        <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.BROWSABLE" />
            <data android:scheme="http"
                android:host="www.example.com"/>

        </intent-filter>
    </activity>
    <activity android:name=".DateSelectorActivity"
        android:label="@string/app_name">
    </activity>
</application>

2 个答案:

答案 0 :(得分:6)

你的问题是:

    <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.BROWSABLE" />
        <data android:scheme="http"
            android:host="www.example.com"/>
    </intent-filter>

在这里,您说如果符合以下情况,此活动将

  • Intent的行为为MAINVIEW
  • Intent的类别为LAUNCHERBROWSABLE
  • Intent的{​​{1}}计划为Uri,主机为http

主屏幕启动器和设置应用不会创建此类www.example.com,因此无法启动此活动。

或者:

  • 删除您所拥有的IntentVIEWBROWSABLE部分,或
  • 将这些内容移至单独 <data>

    <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="android.intent.action.VIEW"/> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="http" android:host="www.example.com"/> </intent-filter> 元素表示<intent-filter>操作:OR与第一个过滤器匹配第二个过滤器适用于此活动。

答案 1 :(得分:0)

我遇到了同样的问题,但是可能是由于不同的原因造成的。 运行以下命令行即可:

adb uninstall com.company.mayapp