नई Google Play Services लाइब्रेरी (8.3.0) में साइन-इन करने का एक नया तरीका है।एंड्रॉइड एप्लिकेशन में नए Google साइन इन जोड़ने के बाद प्रोगार्ड obfuscation मुद्दों
build.gradle (एप्लिकेशन स्तर):: classpath 'com.google.gms:google-services:1.4.0-beta3'
और एप्लिकेशन स्तर पर: यह विधि निम्नलिखित निर्भरता को जोड़ने शामिल है
compile 'com.google.android.gms:play-services-auth:8.3.0'
`apply plugin: 'com.google.gms.google-services'`
जब false
करने के लिए minifyEnabled
सेट के साथ एक रिलीज एप्लिकेशन संस्करण बनाने, ऐप जारी किया जा रहा है और ठीक काम करता है। हालांकि, जब निम्न अपवादों के साथ स्टार्टअप पर minifyEnabled
सेट true
को ऐप्लिकेशन के क्रैश होने के साथ एक रिलीज़ संस्करण बनाने:
java.lang.RuntimeException: Unable to get provider com.google.android.gms.measurement.AppMeasurementContentProvider: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.measurement.AppMeasurementContentProvider" on path: DexPathList[[zip file "/data/app/com.xxx.xxx-1/base.apk"],nativeLibraryDirectories=[/data/app/com.xxx.xxx-1/lib/arm, /vendor/lib, /system/lib]]
11-08 12:47:13.497 3672-3672/? E/AndroidRuntime: at android.app.ActivityThread.installProvider(ActivityThread.java:5156)
11-08 12:47:13.497 3672-3672/? E/AndroidRuntime: at android.app.ActivityThread.installContentProviders(ActivityThread.java:4748)
11-08 12:47:13.497 3672-3672/? E/AndroidRuntime: at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4688)
11-08 12:47:13.497 3672-3672/? E/AndroidRuntime: at android.app.ActivityThread.-wrap1(ActivityThread.java)
11-08 12:47:13.497 3672-3672/? E/AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
11-08 12:47:13.497 3672-3672/? E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
11-08 12:47:13.497 3672-3672/? E/AndroidRuntime: at android.os.Looper.loop(Looper.java:148)
11-08 12:47:13.497 3672-3672/? E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5417)
11-08 12:47:13.497 3672-3672/? E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
11-08 12:47:13.497 3672-3672/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
11-08 12:47:13.497 3672-3672/? E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
11-08 12:47:13.497 3672-3672/? E/AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.measurement.AppMeasurementContentProvider" on path: DexPathList[[zip file "/data/app/xxx.xxx...
मैं ProGuard परियोजना config में इन सेटिंग को जोड़ने की कोशिश की है, लेकिन यह मदद नहीं करता है (एक ही अपवाद प्रदर्शित होने रहता है):
-optimizationpasses 5
-keepattributes SourceFile,LineNumberTable,Exceptions, Signature, InnerClasses,*Annotation*
-keep class com.google.android.gms.** { *; }
-dontwarn com.google.android.gms.**
आपको शायद '-keepattributes अपवाद, हस्ताक्षर, इनर क्लास' भी जोड़ना होगा। – ztan
दुर्भाग्य से यह मदद नहीं करता है, मैंने प्रश्न (प्रासंगिक) प्रोजेवार्ड भागों को दिखाने के लिए प्रश्न संपादित किया है। – Peter
संभावित रूप से एक बग, आप एंड्रॉइड पब्लिक इश्यू ट्रैकर में फ़ाइल कर सकते हैं https://code.google.com/p/android/issues/list – ztan