私は現在のアンドロイドプロジェクトを修正しているので、複数のフレーバーとビルド設定のために同じデバイスにインストールできます。複数のビルドフレーバーのためのapplicationIdマニフェストプレースホルダーが動作しない
build.gradle:
{
// ...
defaultConfig {
applicationId "com.myapp"
manifestPlaceholders = [
manifestApplicationId: "${applicationId}",
onesignal_app_id: "xxxx",
onesignal_google_project_number: "xxxx"
]
// ...
}
productFlavors {
production {
applicationId "com.myapp"
// ...
}
dev {
applicationId "com.myapp.dev"
// ...
}
// ...
}
buildTypes {
release {
// ...
}
debug {
applicationIdSuffix ".debug"
// ...
}
}
// ...
}
のAndroidManifest.xml:
:私は両方のデバッグをコンパイルし、同じ味のバージョンをリリースすると、私はエラーメッセージが表示されました<manifest ... >
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
<permission
android:name="${applicationId}.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<!-- ... -->
<receiver
android:name="com.onesignal.GcmBroadcastReceiver"
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>
<!-- ... -->
</manifest>
...
INSTALL_FAILED_DUPLICATE_PERMISSION
パーマ= com.myapp.permission.C2D_MESSAGE
PKG = com.myapp.dev
...指示通り
manifestApplicationIdプレースホルダがOneSignalライブラリにAndroidManifest.xmlをから来ましたon https://documentation.onesignal.com/docs/android-sdk-setup
誰もがこの問題を解決する手がかりを持っていますか?ありがとうございました。
これはhttp://stackoverflow.com/questions/27043933/install-failed-duplicate-permission-c2d-messageの複製であると思います。デバイスからアプリをアンインストールして再インストールする必要があります。 – Blehi
@Blehi:もちろん、インストールされているバリアントをアンインストールすると、エラーが取り除かれます。しかし私の目標は、すべてのバリアントを同じデバイスにインストールすることです。ありがとうございました。 – Wellsen