wake-up-neo.com

Wie installiere ich INSTALL_PARSE_FAILED_MANIFEST_MALFORMED in meiner Android-Anwendung?

Hallo, ich versuche mit gcm zu experimentieren, kann aber nicht, dass es funktioniert. Ich weiß nicht, wo ich mich damit beschäftige. Unten ist der Fehler, den ich erhalte. Ich versuche, meine Anwendung direkt auf dem Gerät bereitzustellen und von dort aus zu debuggen, aber wenn ich versuche, sie bereitzustellen, gibt es diesen Fehler

Waiting for device.
Target device: HT24LW108632
Uploading file
    local path: D:\Data\Android\AndroidTest\out\production\AndroidTest\AndroidTest.apk
    remote path: /data/local/tmp/Android.Test
Installing Android.Test
DEVICE Shell COMMAND: pm install -r "/data/local/tmp/Android.Test"
pkg: /data/local/tmp/Android.Test
Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED]

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
          package="Android.Test"
          Android:versionCode="1"
          Android:versionName="1.0">
    <uses-sdk Android:minSdkVersion="14"/>

    <permission
            Android:name="Android.Test.permission.C2D_MESSAGE"
            Android:protectionLevel="signature" />
    <uses-permission Android:name="Android.Test.permission.C2D_MESSAGE" />
    <uses-permission Android:name="Android.permission.GET_ACCOUNTS" />
    <uses-permission Android:name="Android.permission.WAKE_LOCK" />
    <uses-permission Android:name="Android.permission.INTERNET" />
    <uses-permission Android:name="com.google.Android.c2dm.permission.RECEIVE" />



    <application Android:label="@string/app_name" Android:icon="@drawable/ic_launcher">
        <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"/>
            </intent-filter>
        </activity>
        <receiver
                Android:name="com.google.Android.gcm.GCMBroadcastReceiver"
                Android:permission="com.google.Android.c2dm.permission.SEND" >
            <intent-filter>
                <action Android:name="com.google.Android.c2dm.intent.RECEIVE" />
                <action Android:name="com.google.Android.c2dm.intent.REGISTRATION" />

                <category Android:name="Android.Test" />
            </intent-filter>
        </receiver>
        <service Android:name=".GCMIntentService" />
    </application>
</manifest>

Mein Gerät ist HTC OneX

  • Android-Version: 4.03
  • HTC Sense Version: 4.0
  • Software-Nummer: 1.29.110.11
  • HTC SDK API Level: 4.12
  • HTC-Erweiterungsversion: HTCExtension_403_1_GA_7

Bitte Guide, wie ich neue Fische in Android Sea bin.

Edit-1: Ich habe bemerkt, dass, wenn ich die folgende Zeile kommentiere, die Anwendung implementiert und ausgeführt wird, aber offensichtlich kann ich nicht ohne die unten angegebene Erlaubnis vorgehen ... bitte helfen Sie ....

<permission Android:name="Android.Test.permission.C2D_MESSAGE"  Android:protectionLevel="signature" />
22
Shax

Namenspaket mit Großbuchstaben in Kleinbuchstaben ändern.

54
imperator_sp

Ändere deine

Android:name="MainActivity"

BIS

Android:name=".MainActivity"

ODER fügt den vollständig qualifizierten Paketnamen vor dem Klassennamen in Kleinbuchstaben hinzu

Android:name="thepackage.MainActivity"

Ändern Sie alle Attribute, die als Android:name innerhalb der activity-Tags bezeichnet werden, wie von mir vorgeschlagen.

8
Vishnuvathsan

Anstatt:

<permission Android:name="Android.permission.C2D_MESSAGE" Android:protectionLevel="signature"/>

zu:

<uses-permission Android:name="Android.permission.C2D_MESSAGE" Android:protectionLevel="signature"/>

Versuch das.

4
Jason Cidras
<activity Android:name="MainActivity"

sollte wie gebildet werden

<activity Android:name="com.company.appname" 

um dies ohne Fehler zu tun, gehen Sie zu Paket (rechte Maustaste)> Android-Tools> App-Paket umbenennen

3
user1833400

versuchen Sie, den Aktivitätsnamen zu schreiben, gefolgt von "." Anstelle von

<activity Android:name="MainActivity"
                  Android:label="@string/app_name">

benutzen

<activity Android:name=".MainActivity"
                  Android:label="@string/app_name">
1
Vinay Rathod

Ich habe dieses Problem in Android Studio getroffen

was zu lösen ist, Unternehmensdomäne alle kleinen Buchstaben sein zu lassen,

1
amr osama

Dazu gibt es ein Problem: http://code.google.com/p/Android/issues/detail?id=37658 Großbuchstaben können nicht in Paketnamen innerhalb von Berechtigungen verwendet werden. Sie sind (genau wie ich) in eine schwierige Situation geraten, als Sie eine Anwendung mit einem solchen Paketnamen bereitgestellt haben und GCM verwenden müssen . Ich habe versucht, eine Art kurze Erlaubnis zu verwenden:

<permission Android:name=".permission.C2D_MESSAGE" Android:protectionLevel="signature" />
<uses-permission Android:name=".permission.C2D_MESSAGE" />

Ich habe auch Service auf dieselbe Weise definiert. Es musste im Anwendungspaket ..__ sein. Es funktionierte auf Android 4.3. Wahrscheinlich auch auf 4.2. Ich weiß, dass es am 4.0.3 nicht so war.

0
Ivo Pavlik

stellen Sie sicher, dass Ihr Paketname in Kleinbuchstaben ist

0
Hadis

In meinem Fall wurde mir der Paketname nur in Kleinbuchstaben genannt. Aber für einige der Aktivitäten habe ich es mit dem partiellen Namen, dh Android:name=".ContactUs", benannt. Nachdem ich das Problem gelöst habe, indem der vollständige Paketname vor dem Aktivitätsnamen, dem Dienstnamen und dem Namen des Broadcast-Anbieters in der Manifest-Datei vorangestellt wurde.

Arbeitscode

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android" package="vcan.doit.com">

<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission Android:name="Android.permission.GET_ACCOUNTS" />
<uses-permission Android:name="Android.permission.READ_PROFILE" />
<uses-permission Android:name="Android.permission.READ_CONTACTS" />

<application
    Android:allowBackup="true"
    Android:icon="@mipmap/ic_launcher"
    Android:label="@string/app_name"
    Android:roundIcon="@mipmap/ic_launcher_round"
    Android:supportsRtl="true"
    Android:theme="@style/Theme.DesignDemo">
    <activity
        Android:name="vcan.doit.com.LoginActivity"
        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>
    <activity
        Android:name="vcan.doit.com.MainActivity"
        Android:theme="@style/Theme.DesignDemo" />
    <activity
        Android:name="vcan.doit.com.CheeseDetailActivity"
        Android:parentActivityName="vcan.doit.com.MainActivity">
        <meta-data
            Android:name="Android.support.PARENT_ACTIVITY"
            Android:value="vcan.doit.com.MainActivity" />
    </activity>

    <service Android:name="vcan.doit.com.PushNotification.MyAndroidFirebaseMsgService">
        <intent-filter>
            <action Android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>
    <service Android:name="vcan.doit.com.PushNotification.MyAndroidFirebaseInstanceIdService">
        <intent-filter>
            <action Android:name="com.google.firebase.INSTANCE_ID_EVENT" />
        </intent-filter>
    </service>

    <activity
        Android:name="vcan.doit.com.AboutUs"
        Android:label="@string/abt_us"
        Android:parentActivityName="vcan.doit.com.MainActivity">
        <meta-data
            Android:name="Android.support.PARENT_ACTIVITY"
            Android:value="vcan.doit.com.MainActivity" />
    </activity>
    <activity
        Android:name="vcan.doit.com.ContactUs"
        Android:label="@string/contact_us"
        Android:parentActivityName="vcan.doit.com.MainActivity">
        <meta-data
            Android:name="Android.support.PARENT_ACTIVITY"
            Android:value="vcan.doit.com.MainActivity" />
    </activity>
    <activity Android:name="vcan.doit.com.WriteToUs"
        Android:label="@string/write_us"
        Android:parentActivityName="vcan.doit.com.MainActivity">
        <meta-data
            Android:name="Android.support.PARENT_ACTIVITY"
            Android:value="vcan.doit.com.MainActivity" />
    </activity>
</application>

0
Raghuram db

Ich hatte dieses Problem. Mein Gerätespeicher war voll. Ich habe mein Problem mit der Freigabe des Gerätespeichers gelöst.

0
M.Namjo

schreiben Sie den Namen des Java-Pakets und den Namen aller Ordner in Kleinbuchstaben.

0
Abhi