Android Studio:应用程序图标未出现在主屏幕或应用程序列表中
Posted
技术标签:
【中文标题】Android Studio:应用程序图标未出现在主屏幕或应用程序列表中【英文标题】:Android Studio: App icon doesn't appear in the home screen or app list 【发布时间】:2016-01-10 21:54:57 【问题描述】:我自己开发的应用程序存在严重问题。
长篇大论:
我创建了一个应用程序并在我的台式电脑上进行了开发。因为我需要向我的客户展示它,所以我决定在我的笔记本电脑上安装 android studio 并在那里试用该应用程序。我在我的笔记本上导入了项目并启动了 Android Studio,我运行了该项目,该应用程序启动并像往常一样在我的智能手机上运行,但是......当我回到主屏幕时,图标不见了(在我的桌面上pc版本显示),它甚至不在应用程序列表中,但是如果我继续“设置”->“管理应用程序”,它会显示在那里,我可以卸载或停止它,但因为我没有如果我不使用 Android Studio 重新运行应用程序,我将无法重新启动它。我回到我的台式电脑并尝试从那里重新运行应用程序,但没有任何改变,图标仍然丢失。
短故事:在我的笔记本电脑上使用 android studio 在手机上重新安装我的应用程序后,主屏幕和应用程序列表中缺少应用程序图标,但我可以在“设置”->“管理应用程序”中看到它。如果我回到我开发应用程序的原始电脑并尝试重新运行它,结果是一样的...图标丢失。
我在 *** 上阅读了所有与我的问题类似的帖子,但没有任何帮助我解决它。我希望有人可以帮助我。
如果需要,我发布了 AndroidManifest.xml,但由于隐私/版权问题,我无法发布所有代码,抱歉。我尽量用最正确的英文写作,如果我的写作很糟糕,我提前道歉。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.steel.bluetoothdatatransfer" >
<uses-sdk
android:minSdkVersion="12"
android:targetSdkVersion="22" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.SMS_DELIVER_ACTION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- <uses-permission android:name="android.permission.BROADCAST_SMS" /> -->
<application
android:allowBackup="true"
android:icon="@drawable/ic_bt"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SENDTO" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
<data android:scheme="mms" />
<data android:scheme="mmsto" />
</intent-filter>
</activity>
<receiver
android:name=".RecMex"
android:enabled="true"
android:exported="true"
android:permission="android.permission.BROADCAST_SMS" >
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<!-- BroadcastReceiver that listens for incoming MMS messages -->
<receiver
android:name=".MmsReceiver"
android:enabled="true"
android:exported="true"
android:permission="android.permission.BROADCAST_WAP_PUSH" >
<intent-filter>
<action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
<data android:mimeType="application/vnd.wap.mms-message" />
</intent-filter>
</receiver>
<!-- Activity that allows the user to send new SMS/MMS messages -->
<activity
android:name=".ComposeSmsActivity"
android:label="@string/title_activity_compose_sms" >
<intent-filter>
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SENDTO" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
<data android:scheme="mms" />
<data android:scheme="mmsto" />
</intent-filter>
</activity>
<!-- Service that delivers messages from the phone "quick response" -->
<service
android:name=".HeadlessSmsSendService"
android:enabled="true"
android:exported="true"
android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE" >
<intent-filter>
<action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
<data android:scheme="mms" />
<data android:scheme="mmsto" />
</intent-filter>
</service>
<!-- BroadcastReceiver that listens for incoming SMS messages -->
<receiver
android:name=".SmsReceiver"
android:permission="android.permission.BROADCAST_SMS" >
<intent-filter>
<action android:name="android.provider.Telephony.SMS_DELIVER" />
</intent-filter>
</receiver>
<activity
android:name=".DeviceListActivity"
android:label="@string/intestazione"
android:theme="@android:style/Theme.Holo.Dialog"
>
</activity>
</application>
【问题讨论】:
救生问题。 【参考方案1】:我遇到了同样的问题,但上面的解决方案对我不起作用。我必须删除label
属性才能让它再次出现在屏幕上。
在 MainActivity 之前是这样的:
<activity
android:name=".HomeTabs.NavigationHome"
android:label="@string/title_activity_navigation_home">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
然后像这样:
<activity
android:name=".HomeTabs.NavigationHome"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
【讨论】:
【参考方案2】:添加不同的意图过滤器可以解决您的问题
<activity
android:name=".activities.SplashActivity"
android:screenOrientation="portrait" >
<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"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:host="example.com"></data>
<data android:scheme="http"></data>
<data android:pathPattern="/.*"></data>
</intent-filter>
</activity>
【讨论】:
我忘了添加动作视图。非常感谢您节省了我的时间。【参考方案3】:如果您已经确定自己已正确定义了应用徽标, 问题将是在启动器活动中使用 android:scheme。请看下面的帖子:
https://***.com/a/8134686/2231702
【讨论】:
我不认为是问题所在,因为它在我的台式电脑上运行良好,而且笔记本上的代码与我的台式电脑上的代码相同(复制粘贴):/【参考方案4】:这是因为您将所有内容都传递给了一个意图过滤器。尝试根据用例将它们分开,或者至少分开启动器和主过滤器。
像这样:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SENDTO" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
<data android:scheme="mms" />
<data android:scheme="mmsto" />
</intent-filter>
【讨论】:
这解决了问题,你无法理解我多么感谢你:D 谢谢哥们,你拯救了我的一天:D 谁能解释为什么把所有东西放在同一个意图中是不好的? 谢谢,你节省了我的时间:) 救命答案..哈哈..tq 非常以上是关于Android Studio:应用程序图标未出现在主屏幕或应用程序列表中的主要内容,如果未能解决你的问题,请参考以下文章
android studio中toolbar怎么出现自己的应用图标
自己的自定义图标未显示在底部导航栏android studio中