7

नई 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.** 
+0

आपको शायद '-keepattributes अपवाद, हस्ताक्षर, इनर क्लास' भी जोड़ना होगा। – ztan

+0

दुर्भाग्य से यह मदद नहीं करता है, मैंने प्रश्न (प्रासंगिक) प्रोजेवार्ड भागों को दिखाने के लिए प्रश्न संपादित किया है। – Peter

+0

संभावित रूप से एक बग, आप एंड्रॉइड पब्लिक इश्यू ट्रैकर में फ़ाइल कर सकते हैं https://code.google.com/p/android/issues/list – ztan

उत्तर

0

मैं पहले से ही एक bug report for this मामला दर्ज किया है।

+3

धन्यवाद, मुझे लगता है कि इस बग रिपोर्ट के लिए फिक्स रिलीज़ 1.5 में लागू किया गया है। गूगल-सेवा प्लगइन के 0। इस निर्भरता को जोड़ने के लिए मेरे लिए समस्या तय की गई: classpath 'com.google.gms: google-services: 1.5.0' – Peter

+1

@ पीटर, धन्यवाद, – artman

+0

@ पीटर धन्यवाद, इस समस्या को हल किया। –

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