25

こんにちは、gcm を試してみましたが、うまくいきません。どこをいじっているのかわかりません。以下は私が得ているエラーです。アプリケーションをデバイスに直接デプロイしてそこからデバッグしようとしていますが、デプロイしようとすると常にこのエラーが発生します

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>

私のデバイスは HTC OneX です

  • Android バージョン: 4.03
  • HTC センス バージョン: 4.0
  • ソフトウェア番号: 1.29.110.11
  • HTC SDK API レベル: 4.12
  • HTC 拡張バージョン: HTCExtension_403_1_GA_7

私はAndroid Seaの新しい魚なので、ガイドしてください。

編集-1:この行の下にコメントすると、アプリケーションはデプロイおよび実行されますが、明らかに以下の許可なしでは先に進むことができないことに気付きました...助けてください....

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

12 に答える 12

60

大文字の名前パッケージを小文字に変更します。

于 2012-09-12T21:25:29.603 に答える
9

あなた

android:name="MainActivity"

android:name=".MainActivity"

または、クラス名の前に完全修飾パッケージ名を小文字で追加します

android:name="thepackage.MainActivity"

私が提案したように、タグandroid:name内のas という名前のすべての属性を変更してください。activity

于 2015-03-24T16:44:11.080 に答える
3
<activity android:name="MainActivity"

のように形成する必要があります

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

エラーなしでこれを行うには、パッケージ(右クリック)> Androidツール>アプリパッケージの名前を変更します

于 2012-11-22T08:31:11.863 に答える
1

アクティビティ名の後に「.」を付けて書いてみてください。それ以外の

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

使用する

<activity android:name=".MainActivity"
                  android:label="@string/app_name">
于 2013-09-12T05:59:07.433 に答える
1

Androidスタジオでこの同じ問題に遭遇しました

これを解決するには、会社のドメインをすべて小文字にすることです。

于 2014-07-15T15:43:55.600 に答える
0

これに関する問題があります: http://code.google.com/p/android/issues/detail?id=37658 パーミッション内のパッケージ名に大文字を使用することはできません。このようなパッケージ名でアプリケーションをデプロイし、GCM を使用する必要がある場合、(私と同じように) 困難な状況に陥ります。私はある種の短い形式の許可を使用しようとしました:

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

サービスも同様に定義しました。アプリケーションパッケージに含まれている必要がありました。Android 4.3で動作しました。おそらく4.2でも。4.0.3ではそうではなかったことを私は知っています。

于 2013-11-12T07:06:45.857 に答える