2015-01-15 10 views
9

मेरे ऐप के लिए है कि मैं नवीनतम एंड्रॉयड स्टूडियो के साथ विकसित कर रहा हूँ मैं इस निर्भरता का उपयोग कर रहा भीतर यह Gradle फ़ाइल है से आ रही विशेषता:एंड्रॉयड Gradle प्रकट विलय: अवहेलना '-अनुमति का उपयोग करता है' एक पुस्तकालय

dependencies { 
    compile 'com.android.support:support-v4:21.0.+' 
    compile 'com.helpshift:android-aar:3.7.1' 
} 

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

के रूप में वर्णित here और here मैं गुण ओवरराइड कर सकते हैं: com.helpshift:android-aar:3.7.1 पुस्तकालय एक विशेषता यह है कि मैं अपने मुख्य अनुप्रयोग में उपयोग नहीं करते के लिए निम्न अनुमति की जरूरत है आयातित लाइब्रेरी के गतिविधि एक्सएमएल घोषणाओं से।

लेकिन क्या मैं मैनिफेस्ट एक्सएमएल घोषणाओं को उल्लिखित uses-permission जैसे ओवरराइड भी कर सकता हूं?

मैं पहले से ही अपने मुख्य प्रकट में कुछ इस तरह की कोशिश की, लेकिन यह काम नहीं किया:

<permission 
    android:name="android.permission.WRITE_EXTERNAL_STORAGE" 
    tools:node="remove" 
    tools:selector="com.helpshift"> 
</permission> 

इसके अलावा <uses-permission> करने के लिए <permission> तत्व मदद नहीं की बदलते। ऐप अभी भी एससी कार्ड तक पहुंचने की अनुमति मांगता है।

मेरा मुख्य AndroidManifest.xml इस तरह अब लग रहा है:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    android:installLocation="auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    package="com.bmi.rechner" > 

    <uses-permission 
     android:name="android.permission.WRITE_EXTERNAL_STORAGE" 
     tools:node="remove" 
     tools:selector="com.helpshift"> 
    </uses-permission> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="com.android.vending.BILLING" /> 

    <application 
     ... 

अद्यतन: @CommonsWare ने सुझाव दिया जवाब काम कर रहा है।

यह सिर्फ मेरा tools:selector="com.helpshift" है जो सही नहीं है। मैं इसे छोड़ रहा हूं क्योंकि मुझे यकीन है कि मुझे थोड़ी देर के लिए किसी अन्य पुस्तकालय में उस अनुमति की आवश्यकता नहीं होगी।

उन्होंने मैनिफेस्ट विलय रिपोर्ट को बेहतर बनाने के लिए feature request भी दायर किया जो भविष्य में सही चयनकर्ता को खोजने में मदद कर सकता है।

उत्तर

9

यह <uses-permission> तत्व होगा जो remove होगा, <permission> तत्व नहीं।

और ध्यान दें कि यदि आपके ऐप में यह अनुमति नहीं है तो लाइब्रेरी क्रैश हो सकती है।

+0

धन्यवाद लेकिन तत्व को <उपयोग-अनुमति> में बदलने में मदद नहीं मिली। ऐप अभी भी एससी कार्ड तक पहुंचने की अनुमति मांगता है। क्या मैं इसे अपनी मेनिफेस्ट फ़ाइल के सही तत्व में उपयोग कर रहा हूं? – Steffen

+0

@sdeff: मुझे नहीं पता कि आपका 'com.helpshift'' चयनकर्ता 'के लिए सही है, क्योंकि मैं इस लाइब्रेरी का उपयोग नहीं करता हूं। इसके अलावा, मैनिफेस्ट विलय रिपोर्ट देखें ('बिल्ड/आउटपुट/एपीके /' आईआईआरसी में होना चाहिए) और देखें कि क्या यह आपको कोई संकेत देता है। – CommonsWare

+1

मैंने अभी पूरी तरह से 'टूल्स: selector = "com.helpshift" हटा दिया है और अब ऐसा लगता है कि यह काम कर रहा है। यह ठीक होना चाहिए? Btw। लाइब्रेरी में एक इन-ऐप चैट है जहां उपयोगकर्ता स्क्रीनशॉट संलग्न कर सकते हैं। यह अब और काम नहीं कर रहा है लेकिन यह उन उपयोगकर्ताओं की 1-सितारा रेटिंग से बेहतर है जो सोचते हैं कि मैं सिर्फ अपना व्यक्तिगत डेटा प्राप्त करना चाहता हूं। :) – Steffen

संबंधित मुद्दे