Android Studio:应用程序图标未显示在主屏幕或应用程序列表中

hivapdat  于 2023-04-18  发布在  Android
关注(0)|答案(4)|浏览(487)

我有一个严重的问题与我的自我开发的应用程序。
长话:
我已经创建了一个应用程序,并在我的桌面PC上开发它。因为我需要向我的客户展示它,我决定在我的笔记本上安装Android Studio,并在那里尝试应用程序。我在我的笔记本上导入了项目,并启动了Android Studio,我运行了项目,应用程序启动并像往常一样在我的智能手机上工作,但是当我回到主屏幕时,图标不见了(而在我的桌面电脑版本显示),它甚至没有在应用程序列表中,但如果我去“设置”--〉“管理应用程序”,它显示在那里,我可以unistall或停止它,但是因为我没有图标,所以如果我不使用Android Studio重新运行应用程序,我就无法再次启动它。我回到我的台式电脑,试图从那里重新运行应用程序,但没有任何变化,图标仍然丢失。
短篇故事:在我的笔记本电脑上用android studio重新安装我的应用程序后,应用程序图标在主屏幕和应用程序列表中丢失,但我可以在“设置”--〉“管理应用程序”中看到它。如果我回到我开发应用程序的原始PC并尝试重新运行它,结果是相同的...图标丢失。
我读了所有的帖子,类似于我的问题在Stackoverflow,但没有帮助我解决它。我希望有人能帮助我。
我张贴的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>
cygmwpex

cygmwpex1#

这是因为你将所有内容都传递到了一个Intent过滤器中。尝试将它们按用例分开,或者至少将Launcher和Main过滤器分开。
就像这样:

<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>
dxxyhpgq

dxxyhpgq2#

添加不同的Intent过滤器可以解决您的问题

<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>
huus2vyu

huus2vyu3#

我也遇到了同样的问题,但上面的解决方案对我不起作用。我不得不删除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>
2o7dmzc5

2o7dmzc54#

如果你已经确定你已经正确地定义了你的应用标志,问题将是在启动器活动中使用android:scheme。请参阅下面的帖子:
https://stackoverflow.com/a/8134686/2231702

相关问题