INSTALL_FAILED_DUPLICATE_PERMISSION… সি 2 ডি_মেসেজ


179

আমি আমার অ্যাপে গুগল বিজ্ঞপ্তিগুলি ব্যবহার করছি এবং এখন অবধি আমি ম্যানিফেস্টে নীচে করেছি:

<!-- 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আমি সেই কোডটি মূল গুগল জিসিএম গাইড থেকে অনুলিপি করেছি, সুতরাং এটি অবশ্যই ঠিক আছে।


20
আপনি প্রথমে অস্পষ্ট বাগের জন্য যা নিয়েছিলেন (ভাল, আমি তা করেছি ...) আসলে একটি নতুন সুরক্ষা বৈশিষ্ট্য যা কোনও ডিভাইসে ইনস্টল করার জন্য পৃথক স্বাক্ষরযুক্ত স্বাক্ষরযুক্ত একই কাস্টম অনুমতিটি ঘোষণা করতে দুটি অ্যাপ্লিকেশনকে বাধা
AZ_

উত্তর:


231

আমি একটি সমাধান খুঁজে পেয়েছি যা আমার পক্ষে কাজ করে।

মাই ডিভাইসে (নেক্সাস 7) অ্যান্ড্রয়েড 5.0। ললিপপ আমি এই পদক্ষেপগুলি অনুসরণ করি।

অ্যাপ আনইনস্টল করার পরে আপনি ট্যাবের App Nameঅ্যাপ্লিকেশন তালিকার নীচে পাবেন Downloaded

  • সেটিংস এ যান
  • অ্যাপস
  • তালিকার নীচে, আপনি YourAppএকটি "ইনস্টল নয়" ট্যাগ সহ পাবেন
  • খোলা
  • "সমস্ত ব্যবহারকারীর জন্য আনইনস্টলOptionMenu করুন " এ ক্লিক করুন এবং নির্বাচন করুন

এই পদক্ষেপগুলির পরে, আমি সফলভাবে নতুন অ্যাপটি ইনস্টল করেছি এবং এটি ভাল চলছে।


6
আমি অ্যান্ড্রয়েড 5.0.1 এর সাথে নেক্সাস 9 ন্যাভ করেছি এবং আমি "নোটো ইনস্টলড" ট্যাগ দিয়ে আমার অ্যাপটি দেখতে পাচ্ছি না
xXJohnRamboXx

এটি আমার জন্য কাজ করেছে, ধন্যবাদ! আমার বিষয়টি কিছুটা আলাদা ছিল। আমি আমাদের মোবাইল অ্যাপে স্বয়ংক্রিয় পরীক্ষা (Xamarin.UITest) করছি, এবং কিছু ম্যানুয়াল পরীক্ষার জন্য আমি একটি আলাদা সংস্করণ আপলোড করেছি। আমি যখন ডিভাইসে অ্যাপটি (ভিএস / জ্যামারিন ইউআইটিস্টের মাধ্যমে) লোড করার চেষ্টা করেছি, তখন আমি এই সমস্যাটি দেখতে শুরু করেছি। আবার ধন্যবাদ.
LuFaMa

এই এক সঠিক উত্তর হওয়া উচিত stackoverflow.com/a/27767179/343679
Sharj

@ প্রতীক বুটানি সমাধানটি আমার পক্ষে কাজ করেছে। আমি ত্রুটি হওয়ার কারণ জানতে চাই? আপনি দয়া করে ব্যাখ্যা করতে পারেন?
কার্তিকেয়েন Ve

1
আমি ইনস্টল করা হয়নি এমন ট্যাগ সহ তালিকার নীচে আমার অ্যাপটি খুঁজে পাচ্ছি না । আপনি কি বোঝাতে চেয়েছেন?
ইগোরগানাপলস্কি

139

অপসারণ

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

অ্যাপ্লিকেশন চালান ... তারপরে আবার পারমিসন যুক্ত করুন এবং অ্যাপ্লিকেশন চালান।

প্রস্তুত!.


31
এই উত্তরটি শীর্ষে থাকা উচিত কারণ আপনি একই ডিভাইসে আপনার অ্যাপের ডিবাগ এবং সংস্করণ প্রকাশ করার চেষ্টা করার সময় এই সমস্যাটি প্রায়শই ঘটে। এই সমাধানের সাহায্যে আপনি এটি সহজেই করতে পারেন। আমি জানতাম না আপনি ম্যানিফেস্টে ভেরিয়েবল ব্যবহার করতে পারেন। ভোট দিন!
ফ্লোরিয়ান

4
অ্যাপ্লিকেশনটি ইতিমধ্যে উত্পাদিত থাকলে এই উত্তরটি কার্যকর হয় না। আমার অ্যাপ্লিকেশনটির ব্যবহারকারীরা অনুমতি ছাড়াই একটি নতুন সংস্করণ ডাউনলোড করবেন এবং তারপরে অনুমতি নিয়ে আবার একটি নতুন সংস্করণ ইনস্টল করবেন এমনটি আশা করতে পারি না।
নীলমগ্নাস

5
যদি আপনার সাথে এটি হয়ে থাকে কারণ আপনি নিজের নামের বিভিন্ন অ্যাপের সংস্করণগুলি ডিবাগ করেছেন এবং প্রকাশ করেছেন, তবে এটি কাজ করার জন্য একটি আনইনস্টল প্রয়োজন হয় না: আপনার কেবল ${applicationId}হার্ডকোডিংয়ের পরিবর্তে ব্যবহার করতে হবে
যুবাল

1
স্থির অ্যাপ্লিকেশন আইডি এর পরিবর্তে $ {অ্যাপ্লিকেশনআইডি Using ব্যবহার করা আমার সমস্যার সমাধান করেছে !! স্বাদ ব্যবহার করার সময় সহ !!!!
জান্ন গ্যাব্রিয়েল

1
@ ইউভালের মন্তব্য আমার পক্ষে স্পষ্ট এবং সমাধান করেছে। অনেক উত্তর আউট, এই এক সেরা কভার ইস্যু: stackoverflow.com/a/36992939/56285
Jonik

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]# 

গ্রহনের উদাহরণ

বিপরীত দিকে যাচ্ছি (যখন একটি রিলিজ বিল্ড ইতিমধ্যে ইনস্টল করা হয়েছে তখন Eclipse থেকে একটি ডিবাগ বিল্ড ইনস্টল করার চেষ্টা করা), আমি নিম্নলিখিত ডায়লগটি পেয়েছি:

Eclipse পুনরায় ইনস্টল ডায়লগ

আপনি যদি ঠিক এই মুহুর্তে উত্তর দেন তবে ইনস্টলটি সফল হবে।

ডিভাইস উদাহরণ

অন্য উত্তরে নির্দেশিত হিসাবে, আপনি ডিভাইস সেটিংসে একটি অ্যাপ তথ্য পৃষ্ঠায় যেতে পারেন, ওভারফ্লো মেনুতে ক্লিক করতে পারেন এবং এই ত্রুটি রোধ করতে "সমস্ত ব্যবহারকারীদের জন্য আনইনস্টল করুন" নির্বাচন করতে পারেন।


ধন্যবাদ, তবে আপনার উত্তরটি শুরু করা উচিত "দিয়ে আপনি ডিভাইস সেটিংসে কোনও অ্যাপ তথ্য পৃষ্ঠায় যেতে পারেন, ওভারফ্লো মেনুতে ক্লিক করতে পারেন এবং এই ত্রুটি রোধ করতে" সমস্ত ব্যবহারকারীদের জন্য আনইনস্টল করুন "নির্বাচন করুন।
যজ্ঞেশ

দয়া করে আমাকে বিয়ে করুন আপনার রেডাকশন অনুসরণ করে, আমি সেটিংস> অ্যাপ্লিকেশনগুলিতে গিয়ে অ্যাপ্লিকেশনটির পুরানো সংস্করণে এবং বিকল্প মেনুতে "সমস্ত ব্যবহারকারীদের জন্য আনইনস্টল করুন" নির্বাচন করুন।
Fabricio পিএইচ

আপনার পূর্বশর্ত তালিকার # 2 টি সত্য হতে হবে না। আমার ক্ষেত্রে আমি অ্যাপটি আপডেট করছি না , তবে এই প্রস্রুডারে বর্ণিত বিভিন্ন প্যাকেজের নামের সাথে একই অ্যাপের একটি ডিবাগ-বিল্ড ইনস্টল করছি। stackoverflow.com/a/21006552/507339 । এটি এমন একটি বিষয় যা আমি এর সমাধান দেখতে পাচ্ছি না
নীলজোর

33

আমি প্রথমে বিকল্প apk আনইনস্টল না করে সমাধান করেছি (কী ব্যথা, ডান?) কোনও এপকের ডিবাগ এবং প্রকাশ সংস্করণ উভয়ই সাফল্যের সাথে ইনস্টল করতে, অনুমতিগুলির অ্যান্ড্রয়েড: সংকলনের সময় নামের মানগুলি সংশোধন করার জন্য কেবল AndroidManifest.xML এর মধ্যে গ্রেডের অন্তর্নির্মিত $ {অ্যাপ্লিকেশনআইডি} স্থানধারকটি ব্যবহার করুন।

বিল্ড.gradle ফাইল স্নিপেট:

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 এর মধ্যে পরিবর্তিত AndroidManLive.xML ফাইলটি পরিদর্শন করতে পারেন । আপনি যদি বিভিন্ন পণ্যের স্বাদ ব্যবহার করেন তবে আমি নিশ্চিত যে আপনার প্রয়োজন অনুসারে আপনি এই পদ্ধতির বিভিন্নতা প্রয়োগ করতে পারেন।


দেখে মনে হচ্ছে যে আমি যদি applicationIdদুটি ভিন্ন ভিন্ন সংজ্ঞা দেয় productFlavors, এবং ব্যবহারটি ${applicationId}একই হয়।
রবার্ট

আমি মনে করি আপনার যদি আরও 1 টি স্বাদ প্রয়োজন হয় তবে এটি আরও দৃ solution় সমাধান।
রবার্ট

এটি সঠিক হিসাবে চিহ্নিত করা উচিত। আপনি প্রতিটি সহকর্মীর কাছ থেকে সহজেই একটি প্রকল্প তৈরি করতে এবং
এপিকে

ধন্যবাদ, অ্যাপ্লিকেশন রান পুরোপুরি জরিমানা আমার জন্য শুধু একটা সমস্যা আছে যদি উভয় মুক্তি এবং ডিবাগ ইনস্টল তৈরী করে তারপর ডিবাগ বিল্ড ইনস্টল করার পরে মুক্তি বিল্ড পরিবর্তে খুলে @jackpile
Prateek Surana

এটি সঠিক উত্তর হিসাবে চিহ্নিত করা উচিত .. ধন্যবাদ @ জ্যাকপাইল
আহমদ 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 uninstall com.yourpackage

উদ্ভট, আমি কেবলমাত্র আমার Nexus 6 এ এটি করতে হয়েছিল, যদিও আমি সিস্টেম UI এর মাধ্যমে আমার APK টি আনইনস্টল করেছিলাম এবং এটি ইনস্টলড অ্যাপ্লিকেশনগুলির নীচে প্রদর্শিত হচ্ছে না।
জন উইলিস

এটা আমাকে দিয়েছে 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 uninstall com.yourpackage


5

উপরের কেউই আমার পক্ষে কাজ করেনি। আমার অ্যাপ্লিকেশনটি ললিপপের তুলনায় আগের চেয়ে ভাল কাজ করছিল। তবে আমি ললিপপটিতে এটি পরীক্ষা করার সময় উপরের ত্রুটিটি উপস্থিত হয়েছিল। এটি ইনস্টল করতে অস্বীকার করেছে। আমার কোনও পূর্ববর্তী সংস্করণ ইনস্টল করা হয়নি তাই উপরের সমস্ত সমাধান আমার ক্ষেত্রে অবৈধ। তবে এই এত সমাধানের জন্য ধন্যবাদ এখন এটি ভাল চলছে। বেশিরভাগ বিকাশকারীদের মতোই আমিও গুগলের বিভ্রান্তিমূলক টিউটোরিয়াল অনুসরণ করেছি এবং আমি অনুলিপিটি কপি করে এটি যুক্ত করেছি:

<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 ঠিক আছে, তবে আমার মতে এটি বলার (বাগ) দুর্বল উপায়: "ডিভাইসে ইনস্টল হওয়া এপিকে একটি আলাদা শংসাপত্রের সাথে স্বাক্ষর করা হয়েছে তবে আপনি যে নতুনটি ইনস্টল করার চেষ্টা করছেন"

এটি সম্ভবত একটি নতুন বাগ যা থেকে আগে এটি ভুল শংসাপত্রের কারণে ডিভাইসটি থেকে অ্যাপটি আনইনস্টল করবেন কিনা তা জিজ্ঞাসা করত।

সমাধানটি যতটা বেদনাদায়ক হতে পারে তা হ'ল অ্যাপটি ম্যানুয়ালি আনইনস্টল করা।

এছাড়াও আমরা টিম বিকাশের স্বার্থে যা করেছি, আমরা আমাদের ভাণ্ডারে ডিবাগ কীস্টোরটি যুক্ত করেছি এবং এটির মতো ব্যবহারের জন্য গ্রেড পয়েন্ট:

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

    ...

    buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
    }

    ...
}

এবং এখন দলের সদস্যদের মধ্যে ডিভাইসগুলি পাস করার সময়, আমরা সকলেই একই ডিবাগ শংসাপত্রটি ব্যবহার করি, তাই কোনও সমস্যা নেই। :)


4

অ্যান্ড্রয়েড 5 এ, আপনার সেটিংস -> অ্যাপ্লিকেশনগুলি পরীক্ষা করুন। সক্রিয় ব্যবহারকারীর জন্য মুছে ফেলার পরিবর্তে (যেহেতু অ্যান্ড্রয়েড 5 এর একাধিক ব্যবহারকারী থাকতে পারে এবং আমার ফোনে অতিথি ব্যবহারকারী থাকতে পারে) অ্যাকশন / সরঞ্জামদণ্ডের উপরের ডানদিকে কোণে আনুষঙ্গিক বোতামে আলতো চাপুন এবং "সমস্ত ব্যবহারকারীর জন্য আনইনস্টল" নির্বাচন করুন। এটি অ্যান্ড্রয়েড 5 এ প্রদর্শিত হয় যখন আপনি কেবলমাত্র লঞ্চারটি থেকে আনইনস্টল করেন আপনি সক্রিয় ব্যবহারকারীর জন্য কেবল অ্যাপটি আনইনস্টল করেন।

অ্যাপটি এখনও ডিভাইসে রয়েছে .. এটি যেহেতু আমি একটি রিলিজ সংস্করণ ইনস্টল করার চেষ্টা করছিলাম, কাজ করল না তাই আমি ভেবেছিলাম ow ঠিক আছে কারণ আমার এখনও ডিবাগ সংস্করণ ইনস্টল আছে, অ্যাপটি আনইনস্টল করুন। তবে এর পরেও ইনস্টল করা যায়নি .. প্রথম ক্লুটি আনইনস্টল করা অ্যাপ্লিকেশন তালিকার একটি রেকর্ড ছিল যার পাশের বার্তাটি এটি আনইনস্টল করা হয়েছিল (চিত্র)।

আনইনস্টল করা অ্যাপ্লিকেশনগুলি এখনও অ্যাপগুলিতে প্রদর্শিত হচ্ছে সমস্ত ব্যবহারকারীর জন্য আনইনস্টল করা


হ্যাঁ, আপনার মন্তব্য তাকান। আমরা কেবল এটি চিত্র সহ অতিরিক্ত তথ্য পোস্ট হিসাবে বিবেচনা করব।
জর্ডি

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

পূর্বে এটি বলত যে ডিভাইসে বিভিন্ন স্বাক্ষরযুক্ত একটি অ্যাপ পাওয়া যায়। আইডিই থেকে ইনস্টল করার সময় এটি জিজ্ঞাসা করবে আপনি এটি আনইনস্টল করতে চান?

তবে আমি মনে করি অ্যান্ড্রয়েড 5.0 থেকে তারা আনইনস্টল করার কারণ পরিবর্তন করেছে। আপনি যদি একই স্বাক্ষর সহ অ্যাপ্লিকেশন ইনস্টল করে থাকেন তবে তা ঘটে না


0

আমি একটি নেক্সাস 5 অ্যান্ড্রয়েড ললিপপ 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.Frestapp

যখন আমি অ্যাপটি ইনস্টল করার চেষ্টা করছিলাম যার প্যাকেজের নাম রয়েছে com.abc.Secondapp। এখানে উল্লেখযোগ্য বিষয়টি ছিল যে প্যাকেজের নাম সহ অ্যাপ্লিকেশনটি com.abc.Firstappইতিমধ্যে আমার অ্যাপ্লিকেশনটিতে ইনস্টল করা আছে।

আমি এই ত্রুটিটি প্যাকেজের নাম সহ অ্যাপ্লিকেশনটি আনইনস্টল করে com.abc.Firstappএবং তারপরে প্যাকেজের নাম দিয়ে অ্যাপ্লিকেশনটি ইনস্টল করে সমাধান করেছিcom.abc.Secondapp

আমি আশা করি এটি পরীক্ষা করার সময় কাউকে সহায়তা করবে।


0

আপনার অ্যান্ড্রয়েড ম্যানিফেস্ট.এক্সএমএল ফাইলে, আপনার বিশেষভাবে ঘোষণা করা অনুমতিগুলির নাম পরিবর্তন করুন, উদাহরণস্বরূপ:

<!-- 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

আপনার যদি অ্যাপটির আলাদা স্বাদ থাকে তবে প্রথমে এটি আনইনস্টল করার চেষ্টা করুন। আমার যখন একই সমস্যা হয়েছিল তখন এটি আমাকে সাহায্য করেছিল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.