मैं रिहाई के लिए AndroidManifest.xml
में एक uses-permission
नोड को हटाने के लिए एक प्रकट प्लेसहोल्डर उपयोग करने के लिए कोशिश कर रहा हूँ कोई भाग्य के साथ बनाता है हटाने के लिए।प्रकट प्लेसहोल्डर उपयोग नहीं कर सकते एक अनुमति
build.gradle
buildTypes {
release {
manifestPlaceholders.excludeDebugPermissions = "remove"
}
debug {
manifestPlaceholders.excludeDebugPermissions = "merge"
}
}
AndroidManifest.xml
<uses-permission
android:name="android.permission.SYSTEM_ALERT_WINDOW"
tools:node="${excludeDebugPermissions}" />
यह इस तरह एक त्रुटि पैदा करता है:
Error:Execution failed for task ':app:processDebugManifest'. No enum constant com.android.manifmerger.NodeOperationType.${EXCLUDE_DEBUG_PERMISSIONS}
लेकिन कहीं और काम करता है प्लेसहोल्डर का उपयोग कर ठीक से (मर्ज किए गए मेनिफेस्ट ठीक है और कोई त्रुटि नहीं है), उदा।
<uses-permission
android:name="${excludeDebugPermissions}"
tools:node="remove" />
तो मुझे लगता है tools:node
विशेषता प्रकट प्लेसहोल्डर का समर्थन नहीं करता और मैं शायद नोड मार्कर (merge
/remove
) के बजाय अनुमति नाम प्रतिस्थापन यह हैक करने जा रहा हूँ, लेकिन मैं से बचने के लिए पसंद करेंगे यदि संभव हो तो।
किसी भी सलाह?
आप डिबग और रिहाई बनाता है के लिए अलग अलग अनुमतियाँ करने का लक्ष्य है:
app/src/release/AndroidManifest.xml
) निम्नलिखित सामग्री के साथSYSTEM_ALERT_WINDOW
अनुमति दूर करने के लिए? आप src/debug में एक और एंड्रॉइड मैनिफेस्ट डाल सकते हैं। नकारात्मकता यह है कि आपके पास बनाए रखने के लिए दो हैं। – RobVoisey@RobVoisey असल में मैं प्रतिक्रिया मूल से प्राप्त SYSTEM_ALERT_WINDOW अनुमति से छुटकारा पाने की कोशिश कर रहा हूं। –
क्या आप इसे हल करने में सक्षम थे? –