アプリケーションのインストール中に奇妙な問題が発生します。
プロジェクトをコンパイルしてもエラーは発生しませんが、そのショーを起動しようとすると、
インストールエラー:INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
エラー。
私はインストールエラーに関連する多くのことを試しました:INSTALL_PARSE_FAILED_MANIFEST_MALFORMEDエラーもそのルールに従いますが、何かがうまくいきません。
<manifest
Android:hardwareAccelerated="true"
Android:versionCode="1"
Android:versionName="0.0.1"
package="Work.Work"
xmlns:Android="http://schemas.Android.com/apk/res/Android">
<supports-screens
Android:anyDensity="true"
Android:largeScreens="true"
Android:normalScreens="true"
Android:resizeable="true"
Android:smallScreens="true"
Android:xlargeScreens="true" />
<uses-permission Android:name="Android.permission.INTERNET" />
<application
Android:hardwareAccelerated="true"
Android:icon="@drawable/icon"
Android:label="@string/app_name"
Android:supportsRtl="true">
<activity
Android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
Android:label="@string/activity_name"
Android:launchMode="singleTop"
Android:name="MainActivity"
Android:screenOrientation="portrait"
Android:theme="@Android:style/Theme.DeviceDefault.NoActionBar"
Android:windowSoftInputMode="adjustResize">
<intent-filter Android:label="@string/launcher_name">
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
Android:exported="true"
Android:name="com.plugin.gcm.PushHandlerActivity" />
<receiver
Android:name="com.plugin.gcm.CordovaGCMBroadcastReceiver"
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="Work.Work" />
</intent-filter>
</receiver>
<service Android:name="com.plugin.gcm.GCMIntentService" />
<activity
Android:exported="true"
Android:name="com.Adobe.phonegap.Push.PushHandlerActivity" />
<receiver Android:name="com.Adobe.phonegap.Push.BackgroundActionButtonHandler" />
<receiver
Android:exported="true"
Android:name="com.google.Android.gms.gcm.GcmReceiver"
Android:permission="com.google.Android.c2dm.permission.SEND">
<intent-filter>
<action Android:name="com.google.Android.c2dm.intent.RECEIVE" />
<category Android:name="${applicationId}" />
</intent-filter>
</receiver>
<service
Android:exported="false"
Android:name="com.Adobe.phonegap.Push.GCMIntentService">
<intent-filter>
<action Android:name="com.google.Android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<service
Android:exported="false"
Android:name="com.Adobe.phonegap.Push.PushInstanceIDListenerService">
<intent-filter>
<action Android:name="com.google.Android.gms.iid.InstanceID" />
</intent-filter>
</service>
<service
Android:exported="false"
Android:name="com.Adobe.phonegap.Push.RegistrationIntentService" />
</application>
<uses-sdk
Android:minSdkVersion="14"
Android:targetSdkVersion="23" />
<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />
<uses-permission Android:name="Android.permission.GET_ACCOUNTS" />
<uses-permission Android:name="Android.permission.WAKE_LOCK" />
<uses-permission Android:name="Android.permission.VIBRATE" />
<uses-permission Android:name="com.google.Android.c2dm.permission.RECEIVE" />
<uses-permission
Android:name="Work.Work.permission.C2D_MESSAGE"
Android:protectionLevel="signature" />
<!--<uses-permission Android:name="Work.Work.permission.C2D_MESSAGE" />-->
<!--<uses-permission Android:maxSdkVersion="18" Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />-->
<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission Android:name="Android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission Android:name="Android.permission.ACCESS_FINE_LOCATION" />
<uses-permission
Android:name="${applicationId}.permission.C2D_MESSAGE"
Android:protectionLevel="signature" />
<!--<uses-permission Android:name="${applicationId}.permission.C2D_MESSAGE" />-->
このようにパッケージ名に大文字が含まれていたため、このエラーが発生していました。
Com.Droider.packagename;
それを次のように変更した後:
com.droider.packagename;
あなたの場合、それを次のように変更してみてください:
work.work;
編集1:
これも原因かもしれません。
Android:name="MainActivity"
これを次のように変更します。
Android:name=".MainActivity"
すべてを確認してください
Android:name="..."
あなたのマニフェストで、あなたがそれを持っているはずの名前の先頭にドットを置くのを忘れたかどうかを確認してください、ほとんどはクラスの名前です。
私の場合、Android:processの値に「:」を付けます
<service
Android:name=".Views.Views.services.MyService"
Android:process=":remote" />
わたしにはできる
package="Work"
APKマニフェストpackage
の名前には、少なくとも1つの.
区切り文字を含める必要があります。例えば:
package="work.work"
PackageParser
source を読んで、インストールがINSTALL_PARSE_FAILED_MANIFEST_MALFORMED
で失敗するさまざまな方法を確認できます。
パッケージ名に大文字が含まれています。すべての文字が小文字になるようにパッケージをリファクタリングしてみてください。これを行うには、プロジェクトのパネルでAndroid表示モードになっていることを確認し、表示インジケータの少し右側にある歯車をクリックして、コンパクトであることを確認します空の中間パッケージはオフになっています。次に、大文字が含まれているパッケージを右クリックして、[リファクタリング]-> [名前の変更]を選択します。小文字に変更し、AndroidManifest.xmlが小文字になっていることを確認します。それを編集します。
私の場合、私はApplicationクラスをメインパッケージフォルダーの外側に配置しました。
アプリケーションクラスをルートアクティビティフォルダに移動するだけです。