【问题标题】:App working on the emulator but not on actual devices应用程序在模拟器上工作,但在实际设备上不工作
【发布时间】:2018-01-29 17:22:35
【问题描述】:

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

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

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

你知道什么可能导致这个问题吗?

清单文件:

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

【问题讨论】:

    标签: java android android-manifest


    【解决方案1】:

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

    【讨论】:

    • 已经尝试过,但结果相同...(接收者名称以相同方式更改)。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      package="gl.mescontacts"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-19
        • 2023-03-23
        相关资源
        最近更新 更多