Je modifie le projet Android actuel afin qu'il puisse être installé sur le même périphérique pour plusieurs configurations et configs de construction.espace réservé applicationId manifeste pour plusieurs styles de construction ne fonctionne pas
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>
Lorsque je compile à la fois le débogage et la libération version de la même saveur, je suis arrivé message d'erreur:
...
INSTALL_FAILED_DUPLICATE_PERMISSION
perm = com.myapp.permission.C2D_MESSAGE
pkg = com.myapp.dev
...
espace réservé manifestApplicationId est venu de AndroidManifest.xml sur la bibliothèque OneSignal selon les instructions sur https://documentation.onesignal.com/docs/android-sdk-setup
Quelqu'un at-il une idée de comment résoudre ce problème? Je vous remercie.
Je pense qu'il s'agit d'un doublon de http://stackoverflow.com/questions/27043933/install-failed-duplicate-permission-c2d-message. Vous devez désinstaller l'application de l'appareil et le réinstaller. – Blehi
@Blehi: Bien sûr, la désinstallation de la variante installée permettra de se débarrasser de l'erreur. Mais mon but est d'installer toutes les variantes sur le même appareil. Je vous remercie. – Wellsen