code-troopers / android-betterpickers

[NO LONGER MAINTAINED] Android library for better Picker DialogFragments
2.67k stars 563 forks source link

build fails with ProGuard #259

Open Jai-GAY opened 8 years ago

Jai-GAY commented 8 years ago

buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }

ProGuard, version 5.2.1 Reading input... Reading program jar C:\sdk\extras\android\m2repository\com\android\support\support-annotations\23.1.1\support-annotations-23.1.1.jar Reading program jar C:\Users\user.gradle\caches\modules-2\files-2.1\com.nineoldandroids\library\2.4.0\e9b63380f3a242dbdbf103a2355ad7e43bad17cb\library-2.4.0.jar Reading program jar C:\Users\user.gradle\caches\modules-2\files-2.1\joda-time\joda-time\2.1\8f79e353ef77da6710e1f10d34fc3698eaaacbca\joda-time-2.1.jar Reading program jar C:\Examples\betterpickers\sample\build\intermediates\exploded-aar\com.android.support\appcompat-v7\23.1.1\jars\classes.jar Reading program jar C:\Examples\betterpickers\sample\build\intermediates\exploded-aar\com.android.support\support-v4\23.1.1\jars\classes.jar Reading program jar C:\Examples\betterpickers\sample\build\intermediates\exploded-aar\com.android.support\support-v4\23.1.1\jars\libs\internal_impl-23.1.1.jar Reading program jar C:\Examples\betterpickers\sample\build\intermediates\exploded-aar\com.code-troopers.betterpickers\library\2.5.1\jars\classes.jar Reading program jar C:\Examples\betterpickers\sample\build\intermediates\transforms\mergeJavaRes\release\jars\2\1f\main.jar Reading program directory C:\Examples\betterpickers\sample\build\intermediates\classes\release Reading library jar [C:\sdk\platforms\android-23\android.jar] Reading library jar [C:\sdk\platforms\android-23\optional\org.apache.http.legacy.jar] Note: duplicate definition of library class [android.net.http.SslError] Note: duplicate definition of library class [android.net.http.SslCertificate] Note: duplicate definition of library class [android.net.http.SslCertificate$DName] Note: duplicate definition of library class [org.apache.http.conn.scheme.HostNameResolver] Note: duplicate definition of library class [org.apache.http.conn.scheme.SocketFactory] Note: duplicate definition of library class [org.apache.http.conn.ConnectTimeoutException] Note: duplicate definition of library class [org.apache.http.params.HttpParams]

Note: there were 7 duplicate class definitions. (http://proguard.sourceforge.net/manual/troubleshooting.html#duplicateclass)

Initializing... Note: the configuration refers to the unknown class 'com.google.vending.licensing.ILicensingService' Note: the configuration refers to the unknown class 'com.android.vending.licensing.ILicensingService' Note: android.support.v4.app.NotificationCompatJellybean calls 'Field.getType' Note: com.nineoldandroids.util.ReflectiveProperty calls 'Field.getType'

Warning: org.joda.time.DateMidnight: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.DateTime: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.DateTimeZone: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.DateTimeZone: can't find referenced class org.joda.convert.ToString Warning: org.joda.time.Days: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.Days: can't find referenced class org.joda.convert.ToString Warning: org.joda.time.Duration: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.Hours: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.Hours: can't find referenced class org.joda.convert.ToString Warning: org.joda.time.Instant: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.LocalDate: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.LocalDate: can't find referenced class org.joda.convert.ToString Warning: org.joda.time.LocalDateTime: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.LocalDateTime: can't find referenced class org.joda.convert.ToString Warning: org.joda.time.LocalTime: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.LocalTime: can't find referenced class org.joda.convert.ToString Warning: org.joda.time.Minutes: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.Minutes: can't find referenced class org.joda.convert.ToString Warning: org.joda.time.MonthDay: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.MonthDay: can't find referenced class org.joda.convert.ToString Warning: org.joda.time.Months: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.Months: can't find referenced class org.joda.convert.ToString Warning: org.joda.time.MutableDateTime: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.MutableDateTime: can't find referenced class org.joda.convert.ToString Warning: org.joda.time.MutablePeriod: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.Period: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.Seconds: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.Seconds: can't find referenced class org.joda.convert.ToString Warning: org.joda.time.Weeks: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.Weeks: can't find referenced class org.joda.convert.ToString Warning: org.joda.time.YearMonth: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.YearMonth: can't find referenced class org.joda.convert.ToString Warning: org.joda.time.Years: can't find referenced class org.joda.convert.FromString Warning: org.joda.time.Years: can't find referenced class org.joda.convert.ToString Warning: org.joda.time.base.AbstractDuration: can't find referenced class org.joda.convert.ToString Warning: org.joda.time.base.AbstractInstant: can't find referenced class org.joda.convert.ToString Warning: org.joda.time.base.AbstractPeriod: can't find referenced class org.joda.convert.ToString

Note: android.support.v4.text.ICUCompatApi23: can't find dynamically referenced class libcore.icu.ICU Note: android.support.v4.text.ICUCompatIcs: can't find dynamically referenced class libcore.icu.ICU Note: android.support.v7.widget.DrawableUtils: can't find dynamically referenced class android.graphics.Insets Note: org.joda.time.DateTimeZone calls '(org.joda.time.tz.Provider)Class.forName(variable).newInstance()' Note: org.joda.time.DateTimeZone calls '(org.joda.time.tz.NameProvider)Class.forName(variable).newInstance()' Note: android.support.v4.app.NotificationCompatJellybean accesses a declared field 'icon' dynamically Maybe this is program field 'android.support.v4.app.NotificationCompat$Action { int icon; }' Maybe this is program field 'android.support.v7.appcompat.R$attr { int icon; }' Maybe this is program field 'android.support.v7.appcompat.R$id { int icon; }' Maybe this is program field 'com.codetroopers.betterpickers.R$attr { int icon; }' Maybe this is program field 'com.codetroopers.betterpickers.R$id { int icon; }' Maybe this is program field 'com.codetroopers.betterpickers.sample.R$attr { int icon; }' Maybe this is program field 'com.codetroopers.betterpickers.sample.R$id { int icon; }' Maybe this is library field 'android.R$attr { int icon; }' Maybe this is library field 'android.R$id { int icon; }' Maybe this is library field 'android.app.LauncherActivity$ListItem { android.graphics.drawable.Drawable icon; }' Maybe this is library field 'android.app.Notification { int icon; }' Maybe this is library field 'android.app.Notification$Action { int icon; }' Maybe this is library field 'android.appwidget.AppWidgetProviderInfo { int icon; }' Maybe this is library field 'android.content.pm.PackageItemInfo { int icon; }' Maybe this is library field 'android.content.pm.ResolveInfo { int icon; }' Maybe this is library field 'android.inputmethodservice.Keyboard$Key { android.graphics.drawable.Drawable icon; }' Maybe this is library field 'android.speech.tts.TextToSpeech$EngineInfo { int icon; }' Note: android.support.v4.app.NotificationCompatJellybean accesses a declared field 'title' dynamically Maybe this is program field 'android.support.v4.app.NotificationCompat$Action { java.lang.CharSequence title; }' Maybe this is program field 'android.support.v7.appcompat.R$attr { int title; }' Maybe this is program field 'android.support.v7.appcompat.R$id { int title; }' Maybe this is program field 'com.codetroopers.betterpickers.R$attr { int title; }' Maybe this is program field 'com.codetroopers.betterpickers.R$id { int title; }' Maybe this is program field 'com.codetroopers.betterpickers.sample.R$attr { int title; }' Maybe this is program field 'com.codetroopers.betterpickers.sample.R$id { int title; }' Maybe this is library field 'android.R$attr { int title; }' Maybe this is library field 'android.R$id { int title; }' Maybe this is library field 'android.app.Notification$Action { java.lang.CharSequence title; }' Maybe this is library field 'android.preference.PreferenceActivity$Header { java.lang.CharSequence title; }' Note: android.support.v4.app.NotificationCompatJellybean accesses a declared field 'actionIntent' dynamically Maybe this is program field 'android.support.v4.app.NotificationCompat$Action { android.app.PendingIntent actionIntent; }' Maybe this is library field 'android.app.Notification$Action { android.app.PendingIntent actionIntent; }' Note: com.codetroopers.betterpickers.timezonepicker.TimeZoneInfo accesses a declared field 'mTransitions' dynamically Maybe this is program field 'com.codetroopers.betterpickers.timezonepicker.TimeZoneInfo { long[] mTransitions; }' Note: the configuration keeps the entry point 'android.support.v4.view.ViewPager { void setAdapter(android.support.v4.view.PagerAdapter); }', but not the descriptor class 'android.support.v4.view.PagerAdapter' Note: the configuration keeps the entry point 'android.support.v4.view.ViewPager { void setOnAdapterChangeListener(android.support.v4.view.ViewPager$OnAdapterChangeListener); }', but not the descriptor class 'android.support.v4.view.ViewPager$OnAdapterChangeListener' Note: the configuration keeps the entry point 'android.support.v4.view.ViewPager { void setOnPageChangeListener(android.support.v4.view.ViewPager$OnPageChangeListener); }', but not the descriptor class 'android.support.v4.view.ViewPager$OnPageChangeListener' Note: the configuration keeps the entry point 'android.support.v4.widget.DrawerLayout { void setDrawerListener(android.support.v4.widget.DrawerLayout$DrawerListener); }', but not the descriptor class 'android.support.v4.widget.DrawerLayout$DrawerListener' Note: the configuration keeps the entry point 'android.support.v4.widget.NestedScrollView { void setOnScrollChangeListener(android.support.v4.widget.NestedScrollView$OnScrollChangeListener); }', but not the descriptor class 'android.support.v4.widget.NestedScrollView$OnScrollChangeListener' Note: the configuration keeps the entry point 'android.support.v4.widget.SlidingPaneLayout { void setPanelSlideListener(android.support.v4.widget.SlidingPaneLayout$PanelSlideListener); }', but not the descriptor class 'android.support.v4.widget.SlidingPaneLayout$PanelSlideListener' Note: the configuration keeps the entry point 'android.support.v4.widget.SwipeRefreshLayout { void setOnRefreshListener(android.support.v4.widget.SwipeRefreshLayout$OnRefreshListener); }', but not the descriptor class 'android.support.v4.widget.SwipeRefreshLayout$OnRefreshListener' Note: the configuration keeps the entry point 'android.support.v7.view.menu.ActionMenuItemView { void setItemInvoker(android.support.v7.view.menu.MenuBuilder$ItemInvoker); }', but not the descriptor class 'android.support.v7.view.menu.MenuBuilder$ItemInvoker' Note: the configuration keeps the entry point 'android.support.v7.view.menu.ActionMenuItemView { void setPopupCallback(android.support.v7.view.menu.ActionMenuItemView$PopupCallback); }', but not the descriptor class 'android.support.v7.view.menu.ActionMenuItemView$PopupCallback' Note: the configuration keeps the entry point 'android.support.v7.widget.ActionBarContainer { void setTabContainer(android.support.v7.widget.ScrollingTabContainerView); }', but not the descriptor class 'android.support.v7.widget.ScrollingTabContainerView' Note: the configuration keeps the entry point 'android.support.v7.widget.ActionBarOverlayLayout { void setActionBarVisibilityCallback(android.support.v7.widget.ActionBarOverlayLayout$ActionBarVisibilityCallback); }', but not the descriptor class 'android.support.v7.widget.ActionBarOverlayLayout$ActionBarVisibilityCallback' Note: the configuration keeps the entry point 'android.support.v7.widget.ActionMenuView { void setPresenter(android.support.v7.widget.ActionMenuPresenter); }', but not the descriptor class 'android.support.v7.widget.ActionMenuPresenter' Note: the configuration keeps the entry point 'android.support.v7.widget.ActionMenuView { void setOnMenuItemClickListener(android.support.v7.widget.ActionMenuView$OnMenuItemClickListener); }', but not the descriptor class 'android.support.v7.widget.ActionMenuView$OnMenuItemClickListener' Note: the configuration keeps the entry point 'android.support.v7.widget.ActivityChooserView { void setActivityChooserModel(android.support.v7.widget.ActivityChooserModel); }', but not the descriptor class 'android.support.v7.widget.ActivityChooserModel' Note: the configuration keeps the entry point 'android.support.v7.widget.ActivityChooserView { void setProvider(android.support.v4.view.ActionProvider); }', but not the descriptor class 'android.support.v4.view.ActionProvider' Note: the configuration keeps the entry point 'android.support.v7.widget.ContentFrameLayout { void setAttachListener(android.support.v7.widget.ContentFrameLayout$OnAttachListener); }', but not the descriptor class 'android.support.v7.widget.ContentFrameLayout$OnAttachListener' Note: the configuration keeps the entry point 'android.support.v7.widget.FitWindowsFrameLayout { void setOnFitSystemWindowsListener(android.support.v7.widget.FitWindowsViewGroup$OnFitSystemWindowsListener); }', but not the descriptor class 'android.support.v7.widget.FitWindowsViewGroup$OnFitSystemWindowsListener' Note: the configuration keeps the entry point 'android.support.v7.widget.FitWindowsLinearLayout { void setOnFitSystemWindowsListener(android.support.v7.widget.FitWindowsViewGroup$OnFitSystemWindowsListener); }', but not the descriptor class 'android.support.v7.widget.FitWindowsViewGroup$OnFitSystemWindowsListener' Note: the configuration keeps the entry point 'android.support.v7.widget.SearchView { void setOnQueryTextListener(android.support.v7.widget.SearchView$OnQueryTextListener); }', but not the descriptor class 'android.support.v7.widget.SearchView$OnQueryTextListener' Note: the configuration keeps the entry point 'android.support.v7.widget.SearchView { void setOnCloseListener(android.support.v7.widget.SearchView$OnCloseListener); }', but not the descriptor class 'android.support.v7.widget.SearchView$OnCloseListener' Note: the configuration keeps the entry point 'android.support.v7.widget.SearchView { void setOnSuggestionListener(android.support.v7.widget.SearchView$OnSuggestionListener); }', but not the descriptor class 'android.support.v7.widget.SearchView$OnSuggestionListener' Note: the configuration keeps the entry point 'android.support.v7.widget.SearchView { void setSuggestionsAdapter(android.support.v4.widget.CursorAdapter); }', but not the descriptor class 'android.support.v4.widget.CursorAdapter' Note: the configuration keeps the entry point 'android.support.v7.widget.SearchView$SearchAutoComplete { void setSearchView(android.support.v7.widget.SearchView); }', but not the descriptor class 'android.support.v7.widget.SearchView' Note: the configuration keeps the entry point 'android.support.v7.widget.Toolbar { void setOnMenuItemClickListener(android.support.v7.widget.Toolbar$OnMenuItemClickListener); }', but not the descriptor class 'android.support.v7.widget.Toolbar$OnMenuItemClickListener' Note: the configuration keeps the entry point 'android.support.v7.widget.ViewStubCompat { void setOnInflateListener(android.support.v7.widget.ViewStubCompat$OnInflateListener); }', but not the descriptor class 'android.support.v7.widget.ViewStubCompat$OnInflateListener' Note: the configuration keeps the entry point 'com.codetroopers.betterpickers.calendardatepicker.DayPickerView { void setController(com.codetroopers.betterpickers.calendardatepicker.CalendarDatePickerController); }', but not the descriptor class 'com.codetroopers.betterpickers.calendardatepicker.CalendarDatePickerController' Note: the configuration keeps the entry point 'com.codetroopers.betterpickers.calendardatepicker.DayPickerView { void setMonthDisplayed(com.codetroopers.betterpickers.calendardatepicker.MonthAdapter$CalendarDay); }', but not the descriptor class 'com.codetroopers.betterpickers.calendardatepicker.MonthAdapter$CalendarDay' Note: the configuration keeps the entry point 'com.codetroopers.betterpickers.calendardatepicker.MonthView { void setOnDayClickListener(com.codetroopers.betterpickers.calendardatepicker.MonthView$OnDayClickListener); }', but not the descriptor class 'com.codetroopers.betterpickers.calendardatepicker.MonthView$OnDayClickListener' Note: the configuration keeps the entry point 'com.codetroopers.betterpickers.radialtimepicker.RadialPickerLayout { void setOnValueSelectedListener(com.codetroopers.betterpickers.radialtimepicker.RadialPickerLayout$OnValueSelectedListener); }', but not the descriptor class 'com.codetroopers.betterpickers.radialtimepicker.RadialPickerLayout$OnValueSelectedListener' Note: the configuration keeps the entry point 'com.codetroopers.betterpickers.widget.UnderlinePageIndicatorPicker { void setOnPageChangeListener(android.support.v4.view.ViewPager$OnPageChangeListener); }', but not the descriptor class 'android.support.v4.view.ViewPager$OnPageChangeListener' Note: the configuration keeps the entry point 'com.codetroopers.betterpickers.widget.UnderlinePageIndicatorPicker { void setTitleView(com.codetroopers.betterpickers.widget.PickerLinearLayout); }', but not the descriptor class 'com.codetroopers.betterpickers.widget.PickerLinearLayout' Note: there were 2 references to unknown classes. You should check your configuration for typos. (http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass) Note: there were 2 classes trying to access generic signatures using reflection. You should consider keeping the signature attributes (using '-keepattributes Signature'). (http://proguard.sourceforge.net/manual/troubleshooting.html#attributes) Note: there were 31 unkept descriptor classes in kept class members. You should consider explicitly keeping the mentioned classes (using '-keep'). (http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass) Note: there were 3 unresolved dynamic references to classes or interfaces. You should check if you need to specify additional program jars. (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass) Note: there were 2 class casts of dynamically created class instances. You might consider explicitly keeping the mentioned classes and/or their implementations (using '-keep'). (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclasscast) Note: there were 4 accesses to class members by means of introspection. You should consider explicitly keeping the mentioned class members (using '-keep' or '-keepclassmembers'). (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclassmember)

Warning: there were 37 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)

Warning: Exception while processing task java.io.IOException: Please correct the above warnings first. :sample:transformClassesAndResourcesWithProguardForRelease FAILED

FAILURE: Build failed with an exception.

BUILD FAILED

fchauveau commented 8 years ago

Hello @Jai-GAY

Thank for reporting, but its quite strange as I don't have these issues. I'll look after this asap.

abiemann commented 6 years ago

maybe because you have minifyEnabled false in your sample ?