3

编译我的Android应用的我的Ant脚本工作正常,但在将Google Play服务库更新到版本5.0(修订版18)后,ProGuard失败并显示以下输出:将Google Play服务更新到版本5.0(修订版18)后,ProGuard失败

-obfuscate: 
    [mkdir] Created dir: /srv2/jenkins/jobs/CCNF Google only/workspace/trunk/org.digitalcure.ccnf.app/bin/proguard 
     [jar] Building jar: /srv2/jenkins/jobs/CCNF Google only/workspace/trunk/org.digitalcure.ccnf.app/bin/proguard/original.jar 
[proguard] ProGuard, version 4.7 
[proguard] Reading input... 
[proguard] Reading program jar [/srv2/jenkins/jobs/CCNF Google only/workspace/trunk/org.digitalcure.ccnf.app/bin/proguard/original.jar] 
[proguard] Reading program jar [/srv2/jenkins/jobs/CCNF Google only/workspace/trunk/org.digitalcure.android.common/bin/classes.jar] 
[proguard] Reading program jar [/srv2/jenkins/jobs/CCNF Google only/workspace/trunk/google-play-services_lib/bin/classes.jar] 
[proguard] Reading program jar [/srv2/jenkins/jobs/CCNF Google only/workspace/trunk/android-support-v7-appcompat/bin/classes.jar] 
[proguard] Reading program jar [/srv2/jenkins/jobs/CCNF Google only/workspace/trunk/android-support-v7-appcompat/libs/android-support-v7-appcompat.jar] 
[proguard] Reading program jar [/srv2/jenkins/jobs/CCNF Google only/workspace/trunk/android-support-v7-appcompat/libs/android-support-v4.jar] 
[proguard] Reading program jar [/srv2/jenkins/jobs/CCNF Google only/workspace/trunk/google-play-services_lib/libs/google-play-services.jar] 
[proguard] Reading library jar [/srv/jenkins/tools/android-sdk-linux/platforms/android-17/android.jar] 
[proguard] Initializing... 
[proguard] Warning: com.google.android.gms.cast.TextTrackStyle: can't find referenced class android.view.accessibility.CaptioningManager 
[proguard] Warning: com.google.android.gms.cast.TextTrackStyle: can't find referenced class android.view.accessibility.CaptioningManager$CaptionStyle 
[proguard] Warning: com.google.android.gms.cast.TextTrackStyle: can't find referenced class android.view.accessibility.CaptioningManager$CaptionStyle 
[proguard] Warning: com.google.android.gms.cast.TextTrackStyle: can't find referenced class android.view.accessibility.CaptioningManager$CaptionStyle 
[proguard] Warning: com.google.android.gms.cast.TextTrackStyle: can't find referenced class android.view.accessibility.CaptioningManager$CaptionStyle 
[proguard] Warning: com.google.android.gms.cast.TextTrackStyle: can't find referenced class android.view.accessibility.CaptioningManager$CaptionStyle 
[proguard] Warning: com.google.android.gms.cast.TextTrackStyle: can't find referenced class android.view.accessibility.CaptioningManager 
[proguard] Warning: com.google.android.gms.cast.TextTrackStyle: can't find referenced class android.view.accessibility.CaptioningManager 
[proguard] Warning: com.google.android.gms.cast.TextTrackStyle: can't find referenced class android.view.accessibility.CaptioningManager$CaptionStyle 
[proguard] Note: android.support.v4.app.NotificationCompatJellybean: can't find dynamically referenced class android.app.Notification$Action 
[proguard] Note: android.support.v4.text.ICUCompatIcs: can't find dynamically referenced class libcore.icu.ICU 
[proguard] Note: com.google.android.gms.maps.internal.u: can't find dynamically referenced class com.google.android.gms.maps.internal.CreatorImplGmm6 
[proguard] Note: com.google.android.gms.maps.internal.u: can't find dynamically referenced class com.google.android.gms.maps.internal.CreatorImpl 
[proguard] Note: the configuration refers to the unknown class 'com.google.vending.licensing.ILicensingService' 
[proguard] Note: the configuration refers to the unknown class 'com.android.vending.licensing.ILicensingService' 
[proguard] Note: the configuration refers to the unknown class 'Object' 
[proguard]  Maybe you meant the fully qualified name 'java.lang.Object'? 
[proguard] Note: the configuration refers to the unknown class 'fqcn.of.javascript.interface.for.webview' 
[proguard] Note: the configuration keeps the entry point 'com.google.ads.AdSize { AdSize(com.google.android.gms.ads.AdSize); }', but not the descriptor class 'com.google.android.gms.ads.AdSize' 
[proguard] Note: the configuration keeps the entry point 'com.google.ads.mediation.admob.AdMobAdapter { com.google.android.gms.ads.AdRequest a(android.content.Context,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationAdRequest' 
[proguard] Note: the configuration keeps the entry point 'com.google.ads.mediation.admob.AdMobAdapter { void requestBannerAd(android.content.Context,com.google.android.gms.ads.mediation.MediationBannerListener,android.os.Bundle,com.google.android.gms.ads.AdSize,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationBannerListener' 
[proguard] Note: the configuration keeps the entry point 'com.google.ads.mediation.admob.AdMobAdapter { void requestBannerAd(android.content.Context,com.google.android.gms.ads.mediation.MediationBannerListener,android.os.Bundle,com.google.android.gms.ads.AdSize,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.AdSize' 
[proguard] Note: the configuration keeps the entry point 'com.google.ads.mediation.admob.AdMobAdapter { void requestBannerAd(android.content.Context,com.google.android.gms.ads.mediation.MediationBannerListener,android.os.Bundle,com.google.android.gms.ads.AdSize,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationAdRequest' 
[proguard] Note: the configuration keeps the entry point 'com.google.ads.mediation.admob.AdMobAdapter { void requestInterstitialAd(android.content.Context,com.google.android.gms.ads.mediation.MediationInterstitialListener,android.os.Bundle,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationInterstitialListener' 
[proguard] Note: the configuration keeps the entry point 'com.google.ads.mediation.admob.AdMobAdapter { void requestInterstitialAd(android.content.Context,com.google.android.gms.ads.mediation.MediationInterstitialListener,android.os.Bundle,com.google.android.gms.ads.mediation.MediationAdRequest,android.os.Bundle); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationAdRequest' 
[proguard] Note: the configuration keeps the entry point 'com.google.ads.mediation.admob.AdMobAdapter$a { AdMobAdapter$a(com.google.ads.mediation.admob.AdMobAdapter,com.google.android.gms.ads.mediation.MediationBannerListener); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationBannerListener' 
[proguard] Note: the configuration keeps the entry point 'com.google.ads.mediation.admob.AdMobAdapter$b { AdMobAdapter$b(com.google.ads.mediation.admob.AdMobAdapter,com.google.android.gms.ads.mediation.MediationInterstitialListener); }', but not the descriptor class 'com.google.android.gms.ads.mediation.MediationInterstitialListener' 
[proguard] Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestBannerAd(com.google.ads.mediation.MediationBannerListener,android.app.Activity,com.google.ads.mediation.customevent.CustomEventServerParameters,com.google.ads.AdSize,com.google.ads.mediation.MediationAdRequest,com.google.android.gms.ads.mediation.customevent.CustomEventExtras); }', but not the descriptor class 'com.google.android.gms.ads.mediation.customevent.CustomEventExtras' 
[proguard] Note: the configuration keeps the entry point 'com.google.ads.mediation.customevent.CustomEventAdapter { void requestInterstitialAd(com.google.ads.mediation.MediationInterstitialListener,android.app.Activity,com.google.ads.mediation.customevent.CustomEventServerParameters,com.google.ads.mediation.MediationAdRequest,com.google.android.gms.ads.mediation.customevent.CustomEventExtras); }', but not the descriptor class 'com.google.android.gms.ads.mediation.customevent.CustomEventExtras' 
[proguard] Note: there were 4 references to unknown classes. 
[proguard]  You should check your configuration for typos. 
[proguard] Note: there were 11 unkept descriptor classes in kept class members. 
[proguard]  You should consider explicitly keeping the mentioned classes 
[proguard]  (using '-keep'). 
[proguard] Note: there were 5 unresolved dynamic references to classes or interfaces. 
[proguard]  You should check if you need to specify additional program jars. 
[proguard] Warning: there were 9 unresolved references to classes or interfaces. 
[proguard]   You may need to specify additional library jars (using '-libraryjars'). 

它与前者(工作)输出进行比较,下面几行是新的:

[proguard] Warning: com.google.android.gms.cast.TextTrackStyle: can't find referenced class android.view.accessibility.CaptioningManager 
[proguard] Warning: com.google.android.gms.cast.TextTrackStyle: can't find referenced class android.view.accessibility.CaptioningManager$CaptionStyle 
[proguard] Warning: com.google.android.gms.cast.TextTrackStyle: can't find referenced class android.view.accessibility.CaptioningManager$CaptionStyle 
[proguard] Warning: com.google.android.gms.cast.TextTrackStyle: can't find referenced class android.view.accessibility.CaptioningManager$CaptionStyle 
[proguard] Warning: com.google.android.gms.cast.TextTrackStyle: can't find referenced class android.view.accessibility.CaptioningManager$CaptionStyle 
[proguard] Warning: com.google.android.gms.cast.TextTrackStyle: can't find referenced class android.view.accessibility.CaptioningManager$CaptionStyle 
[proguard] Warning: com.google.android.gms.cast.TextTrackStyle: can't find referenced class android.view.accessibility.CaptioningManager 
[proguard] Warning: com.google.android.gms.cast.TextTrackStyle: can't find referenced class android.view.accessibility.CaptioningManager 
[proguard] Warning: com.google.android.gms.cast.TextTrackStyle: can't find referenced class android.view.accessibility.CaptioningManager$CaptionStyle 
[proguard] Note: android.support.v4.app.NotificationCompatJellybean: can't find dynamically referenced class android.app.Notification$Action 

加在输出末端的错误消息。

发生了什么事?它接缝,android.view.accessibility.CaptioningManager引入了API级别19.

回答

10

我注意到,Android支持库的目标版本从16更改为19(同时更新到版本20)。我的应用程序是针对目标版本17构建的。所以我将主应用程序项目的目标版本从17更改为19,现在一切正常。而已!

+0

感谢名单显示 - 这解决了我的问题! –

+1

谢谢 - 这解决了我的问题。这对某些人来说可能是显而易见的,但要清楚一点:它位于项目设置的Android部分,您需要将目标版本更改为> = 19。起初,我只是笨到认为将清单中的目标SDK版本从17更改为19就足够了,这当然不是。 – Trevor

4

对于谁@ stefan222的答案没有工作,你可以添加

-dontwarn com.google.android.gms.cast.** 

您proguard.cfg

做到这一点需要您自担风险虽然人。如果你添加了,确保你测试你的应用程序。

0

对于谁想要摆脱警告人们:

所以没有警告将在所有

-dontwarn com.google.android.gms.** 
相关问题