में अपग्रेड करने के बाद एप्लिकेशन को निर्यात करने में विफल रहा मैंने अभी अपने एंड्रॉइड एसडीके, एडीटी और प्रोगुआर्ड को नवीनतम और महानतम में अपग्रेड किया है।प्रोगार्ड 4.8
मेरे परियोजना को संकलित करता है बनाता है और डिबग मोड में ठीक चलाता है, लेकिन जैसे ही मैं इसके बारे में एक हस्ताक्षरित रिहाई APK निर्यात करने की कोशिश, मैं ग्रहण कंसोल पर किसी भी त्रुटि लॉग संदेशों के बिना निर्यात विज़ार्ड से कोई त्रुटि प्राप्त! *
अगर मैं Window->Show View->Error Log
के माध्यम से त्रुटि लॉग को देखने का प्रयास सब मैं देख उसी के अधिक है:
मुझे नहीं पता कि क्या करना है क्योंकि न तो एक्लिप्स और न ही प्रोगार्ड किसी भी संकेत को समस्या के बारे में बताएगा।
मेरी परियोजना ने हाल ही में अपग्रेड तक ठीक निर्यात किया। कोई निर्माण चेतावनी नहीं। कोई लिंट चेतावनी नहीं!
मैं ${sdk.dir}\tools\proguard\proguard-android.txt
में Android के लिए मानक विन्यास फाइल का उपयोग कर रहा:
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose
-dontoptimize
-dontpreverify
-keepattributes *Annotation*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgent
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.app.Fragment
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>;
}
-keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keepclassmembers class **.R$* {
public static <fields>;
}
-dontwarn android.support.**
और मेरी परियोजना की proguard.cfg केवल शामिल हैं:
-assumenosideeffects class android.util.Log {
public static *** v(...);
public static *** i(...);
public static *** d(...);
public static *** w(...);
public static *** e(...);
}
किसी को भी करने से पहले इस समस्या को देखा है? कोई विचार यह कैसे ठीक करें?
कुछ प्रगति? मैं के बाद से मैं ऐसा करने से उन्नत बनाया पहली बार के लिए हस्ताक्षरित APK निर्यात करने में सक्षम था:
- मैं Windows प्रणाली में सभी अस्थायी फ़ाइलें और कैश साफ करने के लिए CCleaner भाग गया,
- तब मैं विंडोज रिबूट।
लेकिन मेरी बेचैनी को, अगली बार मैं हस्ताक्षरित APK फिर से निर्यात करने की कोशिश की, मैं एक ही Failed to export application
के साथ कोई सांत्वना संदेश प्राप्त! फिर से!
अब यह स्पष्ट है कि एंड्रॉइड देव उपकरण अस्थिर हो गए हैं। मैं वास्तव में CCleaner नहीं चला सकता और हर बार जब मैं एक हस्ताक्षरित एपीके निर्यात करना चाहता हूं तो विंडोज रीबूट कर सकता हूं। और मुझे परवाह नहीं है कि किसकी गलती है: एंड्रॉइड एसडीके? एडीटी प्लगइन? ProGuard?
अब मैं क्या करूँ?
कुछ और प्रगति? मैंने प्रोगुआर्ड बंद होने के साथ एक हस्ताक्षरित एपीके निर्यात करने का प्रयास किया। यह ठीक निर्यात किया गया लेकिन जब मैं इसे लॉन्च करता हूं, तो यह तुरंत एप्लिकेशन की गतिविधि कक्षा (ClassNotFoundException
) नहीं ढूंढने में असमर्थ होने के कारण दुर्घटनाग्रस्त हो जाता है। यह अजीब है! यह डीबग मोड में ठीक चलता है और यदि एप्लिकेशन की गतिविधि कक्षा वहां नहीं थी, तो इसे संकलित नहीं किया जाना चाहिए था! क्या चल रहा है? क्या नवीनतम & सबसे बड़ा एंड्रॉइड देव टूल्स टूटा हुआ है?
मैंने Order and Export
टैब के साथ this solution (और this one) में वर्णित अनुसार प्रयास करने की कोशिश की लेकिन इससे मदद नहीं मिली।
अब मैं क्या करूँ?
आशा के लिए धन्यवाद +1 कि आपने मुझे कुछ क्षणों के लिए दिया था। आपके कामकाज ने मेरे मामले में मदद नहीं की, लेकिन इसके बाद मैंने अपग्रेड किए जाने के बाद पहली बार एक हस्ताक्षरित एपीके निर्यात करने की अनुमति दी! यहां मैंने जो किया है: (1) मैंने विंडोज सिस्टम में सभी अस्थायी फ़ाइलों और कैशों को साफ करने के लिए सीसीलेनर चलाया, (2) फिर मैंने विंडोज़ को रिबूट किया। और यह काम किया! लेकिन मेरी निराशा के लिए, अगली बार जब मैंने निर्यात करने की कोशिश की तो मुझे ** कंसोल संदेशों के साथ 'एप्लिकेशन निर्यात करने में विफल' प्राप्त हुआ! **। अब यह मुझे स्पष्ट है कि एंड्रॉइड देव उपकरण अस्थिर हो गए हैं। अब मैं क्या करू? – an00b
यह काम किया! ** ** बिना 'डोंटवार्न' है। यह पता चला कि मुझे प्रत्येक ईडीआईटी में चरण # 1 और # 2 करने की आवश्यकता है ** प्रत्येक लाइब्रेरी प्रोजेक्ट ** जिस पर मेरा एप्लिकेशन प्रोजेक्ट निर्भर है। वह जादू किया। धन्यवाद! आपने धमाल मचाया!!! – an00b