应用程序在模拟器上运行但不在实际设备上运行

App working on the emulator but not on actual devices

当我尝试在实际设备(已测试 Galaxy S7 和 Galaxy Tab 2)上以调试模式启动我的应用程序时遇到问题。在安装过程中,会出现一个对话框,指示安装失败并出现 "INSTALL_PARSE_FAILED_MANIFEST_MALFORMED" 错误。错误消息继续显示“<activity> 没有有效的 android:name”。下面复制的清单文件的第 23 行是有罪的(该行对应于“<application”行正下方的行)。据我所知,我给 activity 起的名字是完全正确的。

更奇怪的是,当在模拟器上启动时,该应用程序会安装并完美运行...

我可以补充一点,对话框提示我应该卸载可能安装的以前的版本,但我没有,如果我回答要删除它,它无法卸载它(这一次,看起来正常)。

知道是什么导致了这个问题吗?

清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="GL.MesContacts"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="21"
    android:targetSdkVersion="26">
</uses-sdk>

<uses-permission android:name="android.permission.CALL_PHONE"/>

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

<uses-permission android:name="android.permission.RECEIVE_MMS"/>

<uses-permission android:name="android.permission.RECEIVE_SMS"/>

<uses-permission android:name="android.permission.SEND_SMS"/>

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

    <activity
        android:name="GL.MesContacts.ActivitePrincipale"
        android:label="@string/app_name">

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

    </activity>

    <receiver
        android:enabled="true"
        android:exported="false"
        android:label="string resource"
        android:name="GL.MesContacts.RecepteurChangementEtatTelephone">

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

   </receiver>

</application>

正如您在清单 package="GL.MesContacts" 中定义的那样,activity 名称应该只是 .ActivitePrincipale 像这样 <activity android:name=".ActivitePrincipale"> .... </activity>

重命名您的包以仅包含小写字符。它不能包含大写字符。 查看 this answer 了解更多信息。

尝试将您的包名称更改为小写:

package="gl.mescontacts"