Gradle "manifestieren, erfordert eine Platzhalter-Ersetzung" Fehler, aber manifestPlaceholders liefert einen Wert
Ich versuche, führen Sie die substitution innerhalb der AndroidManifest.xml Datei aus dem build.gradle android Erweiterung, bin aber immer diese Fehlermeldung:
AndroidManifest.xml:89:16 Error:
Attribute uses-library#com.company.platform.${encoding}@name at AndroidManifest.xml:89:16 requires a placeholder substitution but no value for <encoding> is provided.
/Users/Company/Desktop/Checkout/android/Project/app/src/main/AndroidManifest.xml:0:0 Error:
Validation failed, exiting
:app:processDebugManifest FAILED
Dies ist ein Ausschnitt der manifest-Datei:
...
</receiver>
<uses-library android:name="com.company.platform.${encoding}" />
</application>
...
- Und das ist ein snipped von dem build.gradle:
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.company.app"
minSdkVersion 23
targetSdkVersion 23
versionName cityVersion
setProperty("archivesBaseName", "City_$versionName")
manifestPlaceholders = [encoding: "some value"]
manifestPlaceholders = [version: cityVersion]
}
Habe ich auch versucht, indem die manifestPlaceholders in der buildTypes d.h.
buildTypes {
release {
minifyEnabled true
shrinkResources true
manifestPlaceholders = [encoding: deviceEncoding]
manifestPlaceholders = [version: cityIDVersion]
}
debug {
manifestPlaceholders = [encoding: deviceEncoding]
manifestPlaceholders = [version: cityIDVersion]
}
}
Aber ich bekomme immer noch den gleichen Fehler.
Warum ist es ein Fehler über es erfordert ein Platzhalter-Ersetzung, wenn man in der manifestPlaceholders?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie nur fügen Sie in das array. Sie sind zu ersetzen. Tun Sie dies:
Durch die Erklärung manifestPlaceholders zweimal für den gleichen Geschmack/build geben, Ihre ersetzen die vorherigen. Nachdem die Vorherige ersetzt wurde, Ihren build ist fehlgeschlagen, da die Eigenschaft nicht mehr vorhanden.
Benötigen Sie noch die applicationId Platzhalter, um die Anwendung gradle. Dies geschieht mit der Einbindung von FB, nach dem Update auf Gradle 2.2.0-alpha1
Finden Sie unter: Keine Anbieter com.google.FB.Anbieter.FirebaseInitProvider
Hatte ich von der $ {} - Symbole um mein Wert:
Für diejenigen von Euch läuft in manifest-Fusion /manifest-injection-Probleme aufgrund von
manifestPlaceholders
definiert in Ihren Bibliotheken manifest, das Problem kommt von der Tatsache, dass Sie brauchen, um zu definieren, einen Wert für diemanifestPlaceholders
in Ihren Bibliotheken manifestieren. Dieser Wert ist nicht immer überschrieben, wenn Sie Spritzen Ihren echten Wert in der verwendeten Anwendung. Um dies zu umgehen, sollten Sie nur definieren diesemanifestPlaceholders
Werte fürdebug
baut in Ihrer Bibliothek.Etwa so:
Dadurch werden Sie in der Lage, bauen Sie Ihre Bibliothek. Während auch die Vermietung der client-Anwendung liefern die richtigen Werte für die
manifestPlaceholders
. So dass Sie Ihre Bibliothek, um alles tun, die schweres heben sollte. Dies ist möglich, da Bibliotheken bauen als release-builds (sofern nicht anders definiert).Client-app
build.gradle
Beispiel:android
beschlossen zu gehen, um seinen nächsten Fehler.