【问题标题】:Application icon is not visible on android device应用程序图标在 android 设备上不可见
【发布时间】:2013-03-12 09:49:22
【问题描述】:

我正在开发一款安卓游戏。

它工作正常,但如果我从android manifest 中删除下面的行,我的应用程序图标是可见的,我有一个问题。如果我不删除这些行,那么我的应用程序图标在我的 android 上不可见。

 <data android:host="mocha" android:path="/RTT/reset"
  android:scheme="content" />

这是我的原始 android 清单,其中图标不可见:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ihpc.mocha.rtt"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="12" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <application
        android:name="com.game.rtt.RttGame"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:theme="@android:style/Theme.NoTitleBar" >
        <activity
            android:screenOrientation="sensorLandscape"
            android:name=".MainScene"
            android:label="@string/title_activity_main_scene" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

                 <!-- remove below lines to visible the icon start!!!-->
            <data
                android:host="mocha"
                android:path="/RTT/reset"
                android:scheme="content" />
             <!-- remove below lines to visible the icon end!!!-->
            </intent-filter>

        </activity>

      <activity
            android:name=".SessionTimeOutActivity"
            android:label="@string/app_name" 
            android:screenOrientation="reverseLandscape">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

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

                <data
                    android:host="mocha"
                    android:path="/RTT/sessionTimeOut"
                    android:scheme="content" />
            </intent-filter>
        </activity>
    </application>

</manifest>

请告诉我同样的原因?

【问题讨论】:

    标签: android android-manifest


    【解决方案1】:

    截至"Using intent matching"

    “Intent 与 Intent 过滤器匹配,不仅可以发现要激活的目标组件,还可以发现设备上的组件集。例如,Android 系统填充应用程序启动器,顶部- 级屏幕显示可供用户启动的应用程序,通过查找所有具有指定“android.intent.action.MAIN”操作和“android.intent.category.LAUNCHER”类别的意图过滤器的活动(如如上一节所示)。然后它会在启动器中显示这些活动的图标和标签。类似地,它通过在其过滤器中查找具有“android.intent.category.HOME”的活动来发现主屏幕。” em>

    应用程序启动器无法识别您的启动器活动,因为您假设了一些活动数据。请在您请求数据的地方添加一个新的意图过滤器。

    例子:

            <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.SEND"/>
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="application/json"/>
            </intent-filter>
    

    【讨论】:

    • 感谢您的回答+1 为您分享的知识。希望它也对其他人有所帮助:)
    • 也为我工作。在我的 Android 应用程序中集成 Google Indexing 时,我遇到了同样的问题。多谢,伙计。 :-)
    【解决方案2】:

    这也发生在我身上。您可以像这样将数据标签添加到另一个意图过滤器中来修复它:

            <activity
            android:screenOrientation="sensorLandscape"
            android:name=".MainScene"
            android:label="@string/title_activity_main_scene" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
    
                </intent-filter>
            <intent-filter>
              <data
                android:host="mocha"
                android:path="/RTT/reset"
                android:scheme="content" />
             <!-- remove below lines to visible the icon end!!!-->
            </intent-filter>
    
        </activity>
    

    【讨论】:

    • 感谢和 +1 的回答,但我也需要从其他答案中得到的理由。
    【解决方案3】:

    我刚刚将这一行添加到清单中的启动器活动中,并且图标出现了:

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

    看起来像这样:

    <activity
                android:name=".MainActivity"
                android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.DEFAULT" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    

    【讨论】:

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