2012-09-09 24 views
15

मैं वास्तविक Android डिवाइस पर ग्रहण से एक Android अनुप्रयोग चल साथ समस्या हैग्रहण स्थापना त्रुटि: INSTALL_FAILED_UID_CHANGED

जब मैं रन पर क्लिक करें यह सिर्फ मुझे इस त्रुटि को दिखाने: स्थापना त्रुटि: INSTALL_FAILED_UID_CHANGED

Logcat:

[2012-09-09 14:38:26 - SearchApp] Android Launch! 
[2012-09-09 14:38:26 - SearchApp] adb is running normally. 
[2012-09-09 14:38:26 - SearchApp] Performing com.example.MainActivity activity launch 
[2012-09-09 14:38:26 - SearchApp] Automatic Target Mode: using device 'cff192abd7f551f' 
[2012-09-09 14:38:26 - SearchApp] Uploading SearchApp.apk onto device 'cff192abd7f551f' 
[2012-09-09 14:38:27 - SearchApp] Installing SearchApp.apk... 
[2012-09-09 14:38:28 - SearchApp] Installation error: INSTALL_FAILED_UID_CHANGED 
[2012-09-09 14:38:28 - SearchApp] Please check logcat output for more details. 
[2012-09-09 14:38:28 - SearchApp] Launch canceled! 

उत्तर

11

मैं अंत में INSTALL_FAILED_DEXOPT और INSTALL_FAILED_UID_CHANGED त्रुटि के लिए समाधान

एक व्यर्थ चाल की अलग-अलग परीक्षण के बहुत बाद, मैं अंत में इस चिपचिपा समस्या हमेशा के लिए हल करने के लिए मुख्य समाधान मिल गया!

मुझे लगता है कि समस्या ग्रहण बग के कारण होती है! वास्तव में ग्रहण सिर्फ एक स्ट्रिंग नाम (आगे बताया गया है) की वजह से कॉपी और स्थापित नहीं कर सकता बनाया APK फ़ाइल

मैं जोड़ने चाहिए कि जब आप इस तरह के डेटा/डाटा में नष्ट पैकेज का नाम फ़ोल्डर के रूप में इंटरनेट पर चालें का उपयोग आप एक का सामना करना पड़ेगा नई चिपचिपा त्रुटि "INSTALL_FAILED_DEXOPT"

तो INSTALL_FAILED_DEXOPT और INSTALL_FAILED_UID_CHANGED

मेरे मामले में हल करने के लिए कैसे देख सकते हैं, जब मैं लॉग बिल्ली की जाँच मैं लाइनों के नीचे देखा:

09-30 19:03:19.882: I/PackageManager(314): Running dexopt on: com.example.searchapp 
09-30 19:03:19.921: E/dalvikvm(6129): Invalid name: 'search_‌country_name' 
09-30 19:03:19.921: E/dalvikvm(6129): Trouble with item 226 @ offset 0x2094 
09-30 19:03:19.921: E/dalvikvm(6129): Cross-item verify of section type 0004 failed 
09-30 19:03:19.921: E/dalvikvm(6129): ERROR: Byte swap + verify failed 
09-30 19:03:19.961: E/dalvikvm(6129): Optimization failed 
09-30 19:03:19.961: W/installd(144): DexInv: --- END '/data/app/com.example.searchapp-1.apk' --- status=0xff00, process failed 
09-30 19:03:19.961: E/installd(144): dexopt failed on '/data/dalvik-cache/[email protected]@[email protected]' res = 65280 
09-30 19:03:19.961: W/PackageManager(314): Package couldn't be installed in /data/app/com.example.searchapp-1.apk 

आप दूसरी पंक्ति देख सकते हैं है: अमान्य नाम: 'search_country_name'

यह String.xml में मेरी स्ट्रिंग नामों में से एक

तो मैं इस स्ट्रिंग हट जाएगा और सभी टिप्पणी है संदर्भित कोड

तो मैं पैकेज का नाम फ़ोल्डर में/डेटा/डेटा (यदि आप एक वास्तविक उपकरण का उपयोग कर रहे हैं यदि आप जड़ तक पहुंच होनी चाहिए, यदि आप एमुलेटर उपयोग कर रहे हैं बस एमुलेटर को खोलने से पहले डाटा मिटा या एक नया AVD बनाने) को हटा

अब समस्या हल हो गई है!

आप आसानी से कोडिंग जारी रख सकते हैं!

+0

पर अपना अधिकांश काम किया था डिवाइस पर रूट पहुंच प्राप्त करने का सबसे सुरक्षित तरीका क्या है? – davidtingsu

+0

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

+0

को नुकसान पहुंचा सकते हैं, ठीक है, मेरे लिए नहीं ... मेरे पास Google Play स्टोर में दिए गए "दूषित" पैकेज नाम के साथ एक ऐप है, और एक गैर-रूट डिवाइस (कि मुझे रूट करने की अनुमति नहीं है)। इसलिए, मैं न तो रूट/न ही आईडी/पैकेजगेम बदल सकता हूं। इसके अलावा एक और बात: यह एक ईसीएलईपीएस बग नहीं है, क्योंकि यह एंड्रॉइडस्टूडियो में भी होता है, या यहां तक ​​कि एडीबी कमांड के माध्यम से भी इंस्टॉल किया जाता है। – mthama

2

यह संभव है कि एप्लिकेशन को ठीक से अनइंस्टॉल नहीं किया गया हो। डेटा फ़ोल्डर छोड़ा जा सकता है। तो मैन्युअल रूप से एप्लिकेशन के डेटा फ़ोल्डर को हटाने का प्रयास करें और एप्लिकेशन को फिर से इंस्टॉल करने का प्रयास करें।

+0

मैं पहले से ही इन सभी कार्यों और नेट पर पाए गए कुछ अन्य चाल भी कर चुके हैं, लेकिन उनमें से कोई भी मदद नहीं की! मैंने अंततः उस प्रोजेक्ट पर एक अन्य ऑपरेशन सिस्टम –

0

वैकल्पिक रूप से, एमुलेटर हटाएं और इसे फिर से कॉन्फ़िगर करें।

4

यह समाधान अंत में कोई जड़ के साथ मेरे लिए काम किया:

$ platform-tools/adb -d install /path/to/proj/bin/foo.apk 
797 KB/s (4872885 bytes in 5.963s) 
pkg: /data/local/tmp/foo.apk 
Success 
$ platform-tools/adb -d uninstall com.example.foo.bar 
Success 

मैं पूरी तरह से समझ में नहीं आता क्यों यह काम किया जब ग्रहण से स्थापित करने के लिए एक ही APK के लिए काम नहीं किया है, लेकिन मैं तो बस ले जाने के लिए खुश हूँ पर ...

+0

मैं स्थापित नहीं कर सकता और न ही –

+1

अनइंस्टॉल कर सकता हूं ग्रहण/एडीटी पुराने एपीके को हटा नहीं देता है, यह अपग्रेड/रीइंस्टॉल करने का प्रयास करता है, जो विभिन्न मामलों (सर्टिफिकेट मिस्चैच इत्यादि) में विफल हो सकता है। उन मामलों में आपको पहले मैन्युअल रूप से अनइंस्टॉल करना होगा। –

+0

@ChrisStratton - धन्यवाद, जो पूर्व-निरीक्षण में पूर्ण ज्ञान बनाता है। –

0

हो सकता है किसी को भी मदद ...

मैं डिबग के लिए रूट डिवाइस है।कभी-कभी मैं /data/data/my.package से अपना एप्लिकेशन डेटा बैकअप लेता हूं और बाद में एडीबी शैल द्वारा पुनर्स्थापित करता हूं। पुनर्स्थापित करने से पहले मैं my.package फ़ोल्डर को हटाता हूं, फिर से बना देता हूं और अन्य उपफोल्डर्स और फ़ाइलों की प्रतिलिपि बनाता हूं। इसके बाद ग्रहण से अगले परिवर्तन और रन प्रोजेक्ट पर, INSTALL_FAILED_UID_CHANGED त्रुटि प्राप्त करें।

मेरी गलती: मुझे my.package फ़ोल्डर को हटा नहीं दिया जाना चाहिए था। मुझे केवल इस फ़ोल्डर में सभी को हटाना होगा, क्योंकि पुनर्विक्रय फ़ोल्डर पर मुझे नया मालिक फ़ोल्डर my.package मिलता है।

0

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

0

मुझे यह समस्या एम्यूलेटर पर थी। मैंने avd को हटा दिया और एक नया बनाया। समस्या चली गई

4

मैंने कोशिश की यह सब उत्तर देता लेकिन कोई प्रभाव नहीं

uproperly स्थापना रद्द करें।

समाधान: बस पैड

0

वहां पहले से ही पैकेज के नाम पर आप सौंपा एक अलग यूआईडी के साथ स्थापित करने के लिए कोशिश कर रहे हैं के साथ एक डाटा निर्देशिका है रिबूट। एक रूट पहुँच प्राप्त करें और उसके बाद cmd

rm -r /data/data/com.your.package 

में निम्न आदेश के साथ पहले से ही अस्तित्व में निर्देशिका निकालने का प्रयास करें या अपने डिवाइस पर इसे चलाने के लिए आपके आवेदन पैकेज का नाम बदलने का प्रयास करें।

+0

मुझे यह आदेश कहाँ से चलाया जाना चाहिए? – slier

+0

आपको एडीबी शैल में भागना चाहिए, लेकिन यह एक अच्छा समाधान नहीं है, क्योंकि इसे रूट करने के लिए डिवाइस की आवश्यकता है – mthama

0

तो यदि आप इसे खोजने के लिए नीचे आते हैं .. आपके लिए कुछ भी काम नहीं कर सकता है। हालांकि इसके लिए एक आसान फिक्स है। यह स्पष्ट रूप से अनुचित अनइंस्टॉल (शायद दोषपूर्ण केबल कनेक्शन के कारण) के कारण है। प्ले-स्टोर से

समाधान डाउनलोड SDMaid, और हटाना लाश फ़ाइलें (जंक फ़ाइलें)। पुन: चलाएं एप्लिकेशन।

0

(लेकिन आप अपने डिवाइस निहित है की जरूरत है) यह समाधान मेरे लिए काम किया: डिवाइस की मेमोरी/एसडी कार्ड के लिए अपना APK रखो

  1. adb shell pm install -l -r "/sdcard/<apk_filename>.apk"

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