INSTALL_FAILED_DUPLICATE_PERMISSION… C2D_MESSAGE


179

मैं अपने ऐप में Google सूचनाओं का उपयोग कर रहा हूं, और अब तक मैंने प्रकट रूप में नीचे किया है:

<!-- GCM -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> <!-- GCM requires a Google account. -->
<uses-permission android:name="android.permission.WAKE_LOCK" /> <!-- Keeps the processor from sleeping when a message is received. --> 
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <!-- This app has permission to register and receive data message. --> 

<!-- Creates a custom permission so only this app can receive its messages. NOTE: APP_PACKAGE.permission.C2D_MESSAGE -->   
<permission android:name="com.myapp.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.myapp.permission.C2D_MESSAGE" />    
<!-- END GCM -->

जब तक मैंने अपने Nexus 7 को Android 5.0 में अपडेट नहीं किया, तब तक यह पूरी तरह से काम कर रहा था।
अब जब मैं ग्रहण के साथ इस उपकरण में ऐप को स्थापित करने का प्रयास करता हूं, तो मुझे यह त्रुटि मिलती है:

INSTALL_FAILED_DUPLICATE_PERMISSION अनुमति = com.myapp.permission.C2D_MESSAGE pkg = com.myapp

मुझे समझ नहीं आया कि क्या गलत है? यह एंड्रॉइड 5.0 तक पूरी तरह से काम कर रहा था।
मुझे पता है कि मैं C2D_MESSAGEदो लाइनों में उपयोग कर रहा हूं , permissionऔर uses-permissionलेकिन मैंने उस कोड को मूल Google GCM गाइड से कॉपी किया है, इसलिए यह ठीक होना चाहिए।


20
आपने मूल रूप से एक अस्पष्ट बग के लिए क्या लिया (ठीक है, मैंने किया था ...) वास्तव में एक नई सुरक्षा सुविधा है जो दो ऐप्स को एक ही कस्टम अनुमति की घोषणा करने से रोकती है जो एक अलग हस्ताक्षर के साथ एक डिवाइस पर स्थापित होने के लिए हैं
AZ_

जवाबों:


231

मुझे एक समाधान मिला है जो मेरे लिए काम करता है।

माई डिवाइस (नेक्सस 7) में एंड्रॉइड 5.0। लॉलीपॉप I इन चरणों का पालन करता है।

ऐप को अनइंस्टॉल करने के बाद आपको टैब App Nameके ऐप लिस्ट के नीचे मिलेगा Downloaded

  • सेटिंग्स में जाओ
  • ऐप्स
  • सूची में सबसे नीचे आपको YourApp"NOT INSTALLED" टैग मिलेगा
  • खुला हुआ
  • पर क्लिक करें OptionMenuऔर "सभी उपयोगकर्ताओं के लिए स्थापना रद्द करें " चुनें

इन चरणों के बाद, मैं सफलतापूर्वक नए ऐप को स्थापित करता हूं और यह अच्छी तरह से चल रहा है।


6
मैंने एंड्रॉइड 5.0.1 के साथ नेक्सस 9 को nave किया है और मैं अपने ऐप को "noto इंस्टॉल" टैग के साथ नहीं देख सकता हूं
xXJohnRamboXx

यह मेरे लिए काम किया, धन्यवाद! मेरा मुद्दा थोड़ा अलग था। मैं अपने मोबाइल ऐप पर स्वचालित परीक्षण (Xamarin.UITest) कर रहा हूं, और मैंने कुछ मैनुअल परीक्षण के लिए एक अलग संस्करण अपलोड किया है। जब मैंने ऐप (वीएस / ज़मारिन यूआईएस्ट के माध्यम से) को डिवाइस पर लोड करने का प्रयास किया, तो मुझे यह मुद्दा दिखाई देने लगा। एक बार फिर धन्यवाद।
लुफामा

यह सही उत्तर होना चाहिए: stackoverflow.com/a/27767179/343679
शारज

@Pratik Butani मेरे लिए समाधान ने काम किया। मैं त्रुटि प्राप्त करने का कारण जानना चाहूंगा? क्या आप कृपया समझा सकते हैं?
कार्तिकेयन Ve

1
मुझे सूची में सबसे नीचे नहीं टैग के साथ अपना ऐप नहीं मिला । आपका क्या अर्थ है?
इगोरगानापोलस्की 14

139

हटाना

<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE"/>
<permission
    android:name="${applicationId}.permission.C2D_MESSAGE"
    android:protectionLevel="signature"/>

ऐप चलाएं ... फिर परमिशन जोड़ें और ऐप चलाएँ।

तैयार!।


31
यह उत्तर शीर्ष पर होना चाहिए क्योंकि यह समस्या अक्सर तब होती है जब आप एक ही डिवाइस पर अपने ऐप के डिबग और रिलीज़ संस्करण को स्थापित करने का प्रयास करते हैं। इस घोल से आप आसानी से कर सकते हैं। मुझे नहीं पता था कि आप मैनिफ़ेस्ट में वेरिएबल्स का उपयोग कर सकते हैं। वोट दें!
फ्लोरिअन

4
यदि एप्लिकेशन पहले से ही उत्पादन में है तो यह उत्तर काम नहीं करता है। मैं अपने ऐप के उपयोगकर्ताओं से बिना अनुमति के नया संस्करण डाउनलोड करने और फिर अनुमतियों के साथ एक नया संस्करण स्थापित करने की उम्मीद नहीं कर सकता।
nilsmagnus

5
यदि यह आपके साथ ऐसा हो रहा है क्योंकि आपके पास अलग-अलग नामों के साथ आपके ऐप के डिबग और रिलीज़ संस्करण हैं, तो इसके लिए एक अनइंस्टॉल करना आवश्यक नहीं है: आपको ${applicationId}इसे हार्डकोड करने के बजाय बस उपयोग करने की आवश्यकता है
युवल

1
स्थैतिक अनुप्रयोग आईडी के बजाय $ {ApplicationId} का उपयोग करके मेरी समस्या हल हो गई !! स्वादों का उपयोग करते समय !!!!
JannGabriel

1
@ युवल की टिप्पणी हाजिर है और इसने मेरे लिए इसे हल कर दिया है। कई जवाबों में से, यह एक मुद्दे को कवर करता है: stackoverflow.com/a/36992939/56285
जोनीक

49

मुझे एंड्रॉइड -21 पर कस्टम हस्ताक्षर की अनुमति के साथ एक ही समस्या थी और इसे पूरी तरह से अनइंस्टॉल कर रहा था यह सुनिश्चित करके इसे हल किया।

यह एक किनारा मामला है जो तब होता है जब:

  1. एक आवेदन हस्ताक्षर स्तर की सुरक्षा का उपयोग करते हुए एक कस्टम अनुमति को परिभाषित करता है
  2. आप एक अलग कुंजी के साथ हस्ताक्षरित संस्करण के साथ इंस्टॉल किए गए ऐप को अपडेट करने का प्रयास करते हैं
  3. परीक्षण डिवाइस कई उपयोगकर्ताओं के समर्थन के साथ एंड्रॉइड 21 या नया चला रहा है

कमांड लाइन उदाहरण

यहां एक कमांड-लाइन प्रतिलेख है जो समस्या को प्रदर्शित करता है और इसे कैसे हल किया जाए। इस बिंदु पर एक डिबग संस्करण स्थापित किया गया है और मैं रिलीज़ कुंजी के साथ हस्ताक्षरित उत्पादन संस्करण को स्थापित करने का प्रयास कर रहा हूं:

# This fails because the debug version defines the custom permission signed with a different key:

[root@localhost svn-android-apps]# . androidbuildscripts/my-adb-install Example release
920 KB/s (2211982 bytes in 2.347s)
        pkg: /data/local/tmp/Example-release.apk
Failure [INSTALL_FAILED_DUPLICATE_PERMISSION perm=com.example.android.example.PERMISSION_EXAMPLE_PLUGIN pkg=com.example.android.example]

# I use uninstall -k because apparently that is similar to uninstalling as a user
# by dragging the app out of the app tray:

[root@localhost svn-android-apps]# /android-sdk-linux/platform-tools/adb uninstall -k com.example.android.example
The -k option uninstalls the application while retaining the data/cache.
At the moment, there is no way to remove the remaining data.
You will have to reinstall the application with the same signature, and fully uninstall it.
If you truly wish to continue, execute 'adb shell pm uninstall -k com.example.android.example'

# Let's go ahead and do that:

[root@localhost svn-android-apps]# /android-sdk-linux/platform-tools/adb shell pm uninstall -k com.example.android.example
Success

# This fails again because the custom permission apparently is part of the data/cache
# that was not uninstalled:

[root@localhost svn-android-apps]# . androidbuildscripts/my-adb-install Example release
912 KB/s (2211982 bytes in 2.367s)
        pkg: /data/local/tmp/Example-release.apk
Failure [INSTALL_FAILED_DUPLICATE_PERMISSION perm=com.example.android.example.PERMISSION_EXAMPLE_PLUGIN pkg=com.example.android.example]

# In spite of the warning above, simply doing a full uninstall at this point turned out to 
# work (for me):

[root@localhost svn-android-apps]# /android-sdk-linux/platform-tools/adb uninstall com.example.android.example
Success

# Release version now successfully installs:

[root@localhost svn-android-apps]# . androidbuildscripts/my-adb-install Example release
898 KB/s (2211982 bytes in 2.405s)
        pkg: /data/local/tmp/Example-release.apk
Success

[root@localhost svn-android-apps]# 

ग्रहण का उदाहरण

विपरीत दिशा में जा रहे हैं (जब रिलीज बिल्ड पहले से ही स्थापित है, तो ग्रहण से डिबग बिल्ड स्थापित करने की कोशिश कर रहा है), मुझे निम्नलिखित डायलॉग मिलते हैं:

ग्रहण पुनर्स्थापना संवाद

यदि आप इस बिंदु पर हां का जवाब देते हैं तो इंस्टॉल सफल हो जाएगा।

डिवाइस का उदाहरण

जैसा कि एक अन्य उत्तर में बताया गया है, आप इस डिवाइस की सेटिंग में एक ऐप इंफो पेज पर भी जा सकते हैं, ओवरफ्लो मेनू पर क्लिक करें और इस त्रुटि को रोकने के लिए "सभी उपयोगकर्ताओं के लिए स्थापना रद्द करें" का चयन करें।


धन्यवाद, लेकिन आपको अपना जवाब "आप डिवाइस सेटिंग्स में एक ऐप इंफो पेज पर भी जा सकते हैं, ओवरफ्लो मेनू पर क्लिक करें, और इस त्रुटि को रोकने के लिए" सभी उपयोगकर्ताओं के लिए स्थापना रद्द करें "का चयन करें।"
यज्ञेश

कृपया मुझसे शादी करें। आपके रिडक्शन के बाद, मैं Settings> Apps में गया, ऐप के पुराने संस्करण में टच किया गया और विकल्प मेनू में "अपने उपयोगकर्ताओं के लिए स्थापना रद्द करें" चुनें।
फैब्रिकियो PH

# आपकी पूर्व शर्त सूची के 2 को सही होना जरूरी नहीं है। मेरे मामले में मैं ऐप को अपडेट नहीं कर रहा हूं , लेकिन इस प्रॉसेस के अनुसार अलग-अलग पैकेज नाम के साथ एक ही ऐप का डिबग-बिल्ड इंस्टॉल कर रहा हूं । stackoverflow.com/a/21006552/507339 । यह एक ऐसा मुद्दा है जिसका मुझे समाधान नहीं दिखता है
Nilzor

33

मैंने इसे वैकल्पिक APK को अनइंस्टॉल करने का सहारा लेने के बिना हल किया है पहला (क्या दर्द है, ठीक है?)। एपीके के डिबग और रिलीज़ संस्करण दोनों को सफलतापूर्वक स्थापित करने के लिए, कंप्लीट समय पर अनुमतियों के एंड्रॉइड: नाम मानों को संशोधित करने के लिए AndroidManifest.xml के भीतर केवल gradle के अंतर्निहित $ {applicationId} प्लेसहोल्डर का उपयोग करें।

बिल्ड.ग्रेड फ़ाइल स्निपेट:

buildTypes {
    debug {
        applicationIdSuffix ".debug"
        ...
    }
}

AndroidStudio.xml फ़ाइल स्निपेट:

<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE"/>
<permission
    android:name="${applicationId}.permission.C2D_MESSAGE"
    android:protectionLevel="signature"/>

आप aapt l -a app-debug.apkप्लेसहोल्डर ठीक से लागू किया गया था, यह सुनिश्चित करने के लिए APK के भीतर संशोधित AndroidManifest.xml फ़ाइल का निरीक्षण कर सकते हैं । यदि आप विभिन्न उत्पाद स्वादों का उपयोग करते हैं, तो मुझे यकीन है कि आप अपनी आवश्यकताओं के अनुरूप इस पद्धति का बदलाव लागू कर सकते हैं।


ऐसा लगता है कि अगर मैं applicationIdदो अलग- अलग में परिभाषित करता हूं productFlavors, और ${applicationId}प्रभाव का उपयोग एक ही होगा।
रॉबर्ट

मुझे लगता है कि यह अधिक मजबूत समाधान है यदि आपको अधिक स्वाद चाहिए तो 1 स्वाद।
रॉबर्ट

यह सही चिह्नित किया जाना चाहिए। यह देखते हुए कि आप हर सहकर्मी से यह उम्मीद नहीं कर सकते हैं कि वह किसी प्रोजेक्ट को बनाने के लिए कुछ हैक कर ले और APK
goemic

धन्यवाद, @jackpile ऐप मेरे लिए पूरी तरह से ठीक चलता है, बस एक ही मुद्दा है अगर रिलीज़ और डिबग बिल्ड दोनों स्थापित हैं, तो डिबग स्थापित करने के बाद रिलीज़ बिल्ड इसके बजाय खुल जाता है
Prateek Surana

इसे सही उत्तर के रूप में चिह्नित किया जाना चाहिए .. धन्यवाद @Jackpile
ahmed ewess

28

अपनी प्रकट फ़ाइल से, अपने पैकेज के नाम का कोई भी "हार्ड कोडेड" संदर्भ निकालें।

(यह सबसे अच्छा अभ्यास है भले ही आप उपयोग न करें productFlavors)

उदाहरण के लिए, यदि आपके मेनिफेस्ट में शामिल हैं:

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<uses-permission android:name="com.yourpackage.name.permission.C2D_MESSAGE"/>

<permission
    android:name="com.yourpackage.name.permission.C2D_MESSAGE"
    android:protectionLevel="signature"/>
<permission
    android:name="com.yourpackage.name.permission.MAPS_RECEIVE"
    android:protectionLevel="signature"/>

इसे बदल दिया गया:

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE"/>

<permission
    android:name="${applicationId}.permission.C2D_MESSAGE"
    android:protectionLevel="signature"/>
<permission
    android:name="${applicationId}.permission.MAPS_RECEIVE"
    android:protectionLevel="signature"/>

फिर, आपकी मॉड्यूल ग्रेड फ़ाइल में, अपना प्रासंगिक सेट करें applicationId:

signingConfigs {
    stage {
        storeFile file('keystore/stage.keystore')
        storePassword 'android'
        keyAlias 'androiddebugkey'
        keyPassword 'android'
    }
    production {
        storeFile file('keystore/playstore.keystore')
        storePassword store_password
        keyAlias key_alias
        keyPassword key_password
    }
}

productFlavors {
    staging {
        signingConfig signingConfigs.staging
        applicationId defaultConfig.applicationId + ".staging"
        versionName defaultConfig.versionName + "-staging"
    }

    production {
        signingConfig signingConfigs.production
    }
}

अधिक जानकारी के लिए आप इस ट्यूटोरियल का अनुसरण कर सकते हैं


2
${applicationId}मेरे लिए इस मुद्दे को तय करने का उपयोग कर !
एंडी

इस समस्या का उल्लेख कैसे किया जाता है?
विन्सेन्ट

18

adb के साथ ऐप को अनइंस्टॉल करने की कोशिश करें:

adb uninstall com.yourpackage

विचित्र, मुझे सिर्फ अपने नेक्सस 6 पर ऐसा करना था, भले ही मैंने सिस्टम यूआई के माध्यम से अपने एपीके को अनइंस्टॉल कर दिया था और यह इंस्टॉल किए गए ऐप्स के तहत दिखाई नहीं दे रहा था।
जॉन विलिस

इसने मुझे दिया Failure [DELETE_FAILED_INTERNAL_ERROR]। क्या कारण हो सकता है?
रेअज़ मुर्शेड

17

यह त्रुटि देते समय यह स्पष्ट रूप से ऐप के पैकेज नाम का उल्लेख करेगा, क्योंकि अनुमति से इनकार कर दिया गया था। और सिर्फ एप्लिकेशन को अनइंस्टॉल करने से समस्या हल नहीं होगी। समस्या को हल करने के लिए हमें निम्नलिखित कदम उठाने की आवश्यकता है:

  1. सेटिंग्स में जाओ
  2. ऐप्स पर जाएं
  3. डाउनलोड की गई ऐप सूची पर जाएं
  4. आप सूची में अनइंस्टॉल किए गए एप्लिकेशन को देख सकते हैं
  5. एप्लिकेशन पर क्लिक करें, अधिक विकल्प पर जाएं
  6. सभी उपयोगकर्ता विकल्पों के लिए स्थापना रद्द करें पर क्लिक करें

समस्या हल: डी


8

OS 5.0 में एक एप्लिकेशन इंस्टॉल करने से मुझे यह संदेश मिलता है:

INSTALL_FAILED_DUPLICATE_PERMISSION perm=com.myapp.permission.C2D_MESSAGE pkg=com.myapp

कोई डुप्लिकेट किए गए पैकेज नहीं हैं, और हम इस समस्या को मैन्युअल रूप से पुराने एप्लिकेशन को अनइंस्टॉल करने या adb का उपयोग करके हल कर सकते हैं:

adb uninstall com.yourpackage


5

उपरोक्त में से किसी ने भी मेरे लिए काम नहीं किया। मेरा ऐप लॉलीपॉप की तुलना में पहले से ठीक काम कर रहा था। लेकिन जब मैंने लॉलीपॉप पर इसका परीक्षण किया तो उपरोक्त त्रुटि सामने आई। इसे स्थापित करने से इनकार कर दिया। मेरे पास कोई भी पिछले संस्करण स्थापित नहीं है, इसलिए उपरोक्त सभी समाधान मेरे मामले में अमान्य हैं। लेकिन इस एसओ समाधान के लिए धन्यवाद अब यह ठीक चल रहा है। अधिकांश डेवलपर्स की तरह मैंने भी Google के भ्रामक ट्यूटोरियल का अनुसरण किया और मैंने इस तरह कॉपी और पेस्ट करके अनुमतियाँ जोड़ीं:

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:name="com.google.android.permission.C2D_MESSAGE" 
            android:protectionLevel="signature" />

यह पुराने संस्करणों के साथ काम करेगा <लॉलीपॉप। तो अब मैं बदल गया:

<uses-permission android:name="com.mycompany.myappname.c2dm.permission.RECEIVE" />
<permission android:name="com.mycompany.myappname.permission.C2D_MESSAGE" 
            android:protectionLevel="signature" />

4

CommonsWare सही है, लेकिन मेरी राय में यह कहने के लिए एक (बग) खराब तरीका है: "डिवाइस पर स्थापित APK को एक अलग प्रमाण पत्र के साथ हस्ताक्षरित किया जाता है, फिर नया जिसे आप इंस्टॉल करने का प्रयास कर रहे हैं"

यह शायद एक नया बग है क्योंकि अतीत में यह गलत प्रमाणपत्र के कारण डिवाइस से ऐप को अनइंस्टॉल करने के लिए कहता था या नहीं।

यह जितना दर्दनाक हो सकता है, इसका समाधान यह ऐप मैन्युअल रूप से अनइंस्टॉल करना होगा।

टीम विकास के लिए हमने जो भी किया है, हमने डिबग कीस्ट्रोर को अपने रिपॉजिटरी में जोड़ा है, और पॉइंट ग्रेडेल को इसका उपयोग करने के लिए इस तरह किया है:

android {
    ...
    signingConfigs {
        debug {
            storeFile file("../certificates/debug.keystore")
        }
    }

    ...

    buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
    }

    ...
}

और अब टीम के सदस्यों के बीच डिवाइस पास करते समय, हम सभी एक ही डिबग प्रमाणपत्र का उपयोग करते हैं, इसलिए कोई समस्या नहीं है। :)


4

एंड्रॉइड 5 में, अपनी सेटिंग्स -> एप्लिकेशन जांचें। केवल सक्रिय उपयोगकर्ता को हटाने के बजाय (क्योंकि एंड्रॉइड 5 में कई उपयोगकर्ता हो सकते हैं और मेरे फोन में एक अतिथि उपयोगकर्ता था) एक्शन / टूलबार के ऊपरी दाएं कोने में एक्सेसरी बटन पर टैप करें और "सभी उपयोगकर्ताओं के लिए स्थापना रद्द करें" चुनें। ऐसा प्रतीत होता है कि एंड्रॉइड 5 में जब आप लॉन्चर से अनइंस्टॉल करते हैं तो आप केवल सक्रिय उपयोगकर्ता के लिए ऐप की स्थापना रद्द करते हैं।

एप्लिकेशन अभी भी डिवाइस पर है .. यह मुझे तब से चकाचौंध कर गया था जब से मैं एक रिलीज संस्करण को स्थापित करने की कोशिश कर रहा था, मैंने काम नहीं किया, इसलिए मैंने सोचा कि ओव सही होना चाहिए क्योंकि मेरे पास अभी भी डिबग संस्करण स्थापित है, एप्लिकेशन को अनइंस्टॉल किया गया है। लेकिन अभी भी स्थापित नहीं किया जा सका है .. पहला सुराग संदेश के बगल में अनइंस्टॉल किए गए ऐप की ऐप सूची में एक रिकॉर्ड था जो कि इसे अनइंस्टॉल किया गया था (छवि)।

ऐप्स में अभी भी अनइंस्टॉल किया गया ऐप दिखाई दे रहा है सभी उपयोगकर्ताओं के लिए अनइंस्टॉल किया गया


Sry, आपकी टिप्पणी पर ध्यान दिया। हम केवल छवियों के साथ एक अतिरिक्त जानकारी पोस्ट के रूप में इस पर विचार करेंगे।
जॉर्डन डे

2

इस लिंक को देखें यह कहा गया है कि यह तब काम करेगा जब वे एक ही कुंजी द्वारा हस्ताक्षरित होंगे। रिलीज़ कुंजी और डीबग कुंजी समान नहीं हैं।

तो इसे करो:

buildTypes {
        release {
            minifyEnabled true
            signingConfig signingConfigs.release//signing by the same key
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-android.txt'

        }
        debug {
            applicationIdSuffix ".debug"
            debuggable true
            signingConfig signingConfigs.release//signing by the same key
        }

    }

 signingConfigs {
        release {
            storeFile file("***\\key_.jks")
            storePassword "key_***"
            keyAlias "key_***"
            keyPassword "key_"***"
        }


}

1

नीचे लाइनों की जगह:

<permission android:name="com.myapp.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.myapp.permission.C2D_MESSAGE" 
android:protectionLevel="signature" /> 

1

मेरे मामले में, मेरे पास पैकेज नाम में एक ही डोमेन नाम के रूप में कई एप्लिकेशन इंस्टॉल थे।

com.mypackage.app1
com.mypackage.app2
com.mypackage.app3 
...

मुझे समस्या से छुटकारा पाने के लिए सभी ऐप्स को एक जैसे पैकेज नाम रखने की स्थापना रद्द करनी होगी और उन्हें फिर से इंस्टॉल करना होगा।

डिवाइस से सभी पैकेज नामों को खोजने के लिए मैंने निम्नलिखित का उपयोग किया।

adb shell pm list packages

फिर मैंने उन पैकेजों को पकड़ लिया जो मेरे पैकेज के नाम से मेल खाते हैं जिन्हें मैं ढूंढ रहा हूं।

dumpsys | grep -A18 "Package \[com.mypackage\]"

फिर उस डोमेन वाले सभी ऐप्स को अनइंस्टॉल कर दिया।

uninstall com.mypackage.app1
uninstall com.mypackage.app2
uninstall com.mypackage.app3
...

तुम भी का उपयोग कर अनुप्रयोगों की स्थापना रद्द कर सकते हैं Settings एप्लिकेशन को । के पास जाओSettings -> Apps -> Find the app -> Uninstall

आशा है कि किसी को मेरी तरह ही समस्या होने में मदद करता है।


0

पहले यह कहा करता था कि डिवाइस पर अलग-अलग हस्ताक्षर वाला एक ऐप पाया जाता है। IDE से इंस्टॉल करते समय यह भी पूछा जाएगा कि क्या आप इसे अनइंस्टॉल करना चाहते हैं?

लेकिन मुझे लगता है कि एंड्रॉइड 5.0 से उन्होंने अनइंस्टॉल करने का कारण बदल दिया है। यदि आप एक ही हस्ताक्षर के साथ ऐप इंस्टॉल कर रहे हैं तो ऐसा नहीं होता है


0

मैं एक सांठगांठ 5 Android लॉलीपॉप 5.0.1 के साथ एक ही समस्या का सामना करना पड़ा:

Installation error: INSTALL_FAILED_DUPLICATE_PERMISSION perm=com.android.** pkg=com.android.**

और मेरे मामले में मैं इस समस्या uninstallingको ठीक नहीं कर सका क्योंकि यह एक था android app, लेकिन मुझे अपना ऐप custom permissionsनाम बदलना पड़ाmanifest क्योंकि वे एंड्रॉइड ऐप के समान थे, जिन्हें मैं अनइंस्टॉल नहीं कर सकता था या कोई बदलाव नहीं कर सकता था।

आशा है कि यह किसी की मदद करता है!


0

मेरे मामले में मुझे निम्नलिखित त्रुटि मिली

स्थापना त्रुटि: INSTALL_FAILED_DUPLICATE_PERMISSION अनुमति = com.map.permission.MAPS_RECEIVE pkg = com.abc.Firstapp

जब मैं उस ऐप को इंस्टॉल करने की कोशिश कर रहा था जिसमें पैकेज का नाम है com.abc.Secondapp। यहाँ बिंदु यह था कि पैकेज नाम वाला ऐप com.abc.Firstappमेरे एप्लिकेशन में पहले से इंस्टॉल था।

मैंने पैकेज नाम के साथ एप्लिकेशन की स्थापना रद्द करके इस त्रुटि को हल किया com.abc.Firstapp और फिर पैकेज नाम के साथ एप्लिकेशन इंस्टॉलcom.abc.Secondapp

मुझे उम्मीद है कि यह परीक्षण करते समय किसी की मदद करेगा।


0

अपने AndroidManifest.xml फ़ाइल में, अपने विशेष रूप से घोषित अनुमतियों के नाम बदलें, उदाहरण के लिए:

<!-- Creates a custom permission so only this app can receive its messages. NOTE: APP_PACKAGE.permission.C2D_MESSAGE -->   
<permission android:name="com.myapp.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.myapp.permission.C2D_MESSAGE" />    
<!-- END GCM -->

इसके लिए,

<!-- Creates a custom permission so only this app can receive its messages. NOTE: APP_PACKAGE.permission.C2D_MESSAGE -->   
<permission android:name="com.myapprocks.permission.C2D_MESSAGE"  android:protectionLevel="signature" />
<uses-permission android:name="com.myapprocks.permission.C2D_MESSAGE" />    
<!-- END GCM -->

com.myapprocks यह हिस्सा आपके अन्य ऐप के साथ संघर्ष को हल करता है।


0

मेरे मामले में मैं एक तीसरे पक्ष के पुस्तकालय (यानी विक्रेता) का उपयोग कर रहा था और पुस्तकालय एक नमूना ऐप के साथ आता है जिसे मैंने पहले से ही अपने डिवाइस पर स्थापित किया था। इसलिए कि नमूना एप्लिकेशन अब हर बार संघर्ष कर रहा था जब मैं पुस्तकालय को लागू करने के लिए अपना खुद का ऐप स्थापित करने का प्रयास करता हूं। इसलिए मैंने सिर्फ विक्रेता के सैंपल ऐप को अनइंस्टॉल किया और यह बाद में काम करता है।




0

यदि आपके पास ऐप का अलग स्वाद है, तो पहले उसे अनइंस्टॉल करने का प्रयास करें। इससे मुझे तब मदद मिली जब मेरे पास भी यही मुद्दा था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.