2015-06-04 54 views
19

在更新Gradle Android版本的依赖关系后,使用本地Maven extras版本库(SDK内)的com.android.support:support-v4:22.2.0,Proguard开始抛出这些问题。Android版Proguard配置支持v4 22.2.0

Warning: android.support.v4.app.DialogFragment: can't find referenced class android.support.v4.app.DialogFragment$DialogStyle 
Warning: android.support.v4.app.FragmentTransaction: can't find referenced class android.support.v4.app.FragmentTransaction$Transit 
Warning: android.support.v4.view.ViewCompat: can't find referenced class android.support.v4.view.ViewCompat$ResolvedLayoutDirectionMode 
Warning: android.support.v4.view.ViewCompat: can't find referenced class android.support.v4.view.ViewCompat$LayoutDirectionMode 
Warning: android.support.v4.view.ViewCompat: can't find referenced class android.support.v4.view.ViewCompat$LayerType 
Warning: android.support.v4.view.ViewCompat: can't find referenced class android.support.v4.view.ViewCompat$AccessibilityLiveRegion 
Warning: android.support.v4.view.ViewCompat: can't find referenced class android.support.v4.view.ViewCompat$ImportantForAccessibility 
Warning: android.support.v4.view.ViewCompat: can't find referenced class android.support.v4.view.ViewCompat$OverScroll 
Warning: android.support.v4.widget.DrawerLayout: can't find referenced class android.support.v4.widget.DrawerLayout$EdgeGravity 
Warning: android.support.v4.widget.DrawerLayout: can't find referenced class android.support.v4.widget.DrawerLayout$LockMode 
Warning: android.support.v4.widget.DrawerLayout: can't find referenced class android.support.v4.widget.DrawerLayout$State 
Warning: there were 11 unresolved references to classes or interfaces. 
     You may need to add missing library jars or update their versions. 
     If your code works fine without the missing classes, you can suppress 
     the warnings with '-dontwarn' options. 
     (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass) 

简单地增加-dontwarn android.support.v4.**解决了这个问题,但我想一个更具体的/优雅的解决方案,比无视support.v4包中的所有问题

谁能告诉应该加什么规则,所以这些类/ @接口是否被Proguard正确处理?

+1

我有同样的问题。 – sanath01

+1

即使我面对这个问题很多次, ,但唯一的解决方案,我可以使用'-dontwarn' –

回答

12

唯一的解决办法就是你所提到的情况,即-dontwarn android.support.v4.**。这实际上取自<path-to-android-sdk>/tools/proguard/proguard-android.txt,它说:

# The support library contains references to newer platform versions. 
# Don't warn about those in case this app is linking against an older 
# platform version. We know about them, and they are safe. 
-dontwarn android.support.** 
3

根据Android团队设置不要警告支持库类是安全的。您可以通过这样做:

## Support library 
-dontwarn android.support.** 
+1

这并没有多大帮助,因为dontwarn不解决问题,它隐藏它... –

+0

什么问题?你的应用崩溃了吗? – Splaktar

+0

不,但构建是,那让我担心 –