2016-07-08 482 views
0

大家好,我想用構建變體版本構建我的apk但面臨一些錯誤。我也嘗試使用-keep,-keepclassmember ,-keepclasseswithmembers和-dontwarn在proguard-rules.pro中,但無法獲得任何解決方案。我沒有默認的proguard-rules.pro,所以我從另一個項目中複製了它。我想知道如何構建我的apk發佈。當使用proguard和build-variant構建apk時出現錯誤android

 **This is my build.gradle file** 
     apply plugin: 'com.android.application' android { 
      signingConfigs { 
       config { 
        keyAlias 'KeyAlias' 
        keyPassword 'password' 
        storeFile 'keycorner.jks' 
        storePassword 'password' 
       } 
      } 
      compileSdkVersion 23 
      buildToolsVersion "23.0.2" 
      defaultConfig { 
       applicationId "com.example.demo" 
       minSdkVersion 11 
       targetSdkVersion 23 
       multiDexEnabled true 

      } 
      dexOptions { 
       incremental true 
       javaMaxHeapSize "4g" 
      } 
      lintOptions { 
       disable "ResourceType" 
      } 
      buildTypes { 
       release { 
        minifyEnabled true 
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
       } 
      } 
     } 
     **These are the warning coming:-** 
     Note: duplicate definition of library class [android.net.http.SslCertificate] 
     Note: duplicate definition of library class [android.net.http.SslError] 
     Note: duplicate definition of library class [android.net.http.SslCertificate$DName] 
     Note: duplicate definition of library class [org.apache.http.conn.scheme.SocketFactory] 
     Note: duplicate definition of library class [org.apache.http.conn.scheme.HostNameResolver] 
     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: the configuration refers to the unknown class 'com.android.vending.licensing.ILicensingService' 
     Note: android.support.v4.app.NotificationCompatJellybean calls 'Field.getType' 
     Note: com.google.android.gms.internal.zzsv calls 'Field.getType' 
     Warning:net.authorize.sim.Transaction: can't find referenced class net.authorize.sim.Fingerprint 
     Warning:net.authorize.sim.Transaction: can't find referenced class net.authorize.data.sim.HostedPaymentFormSettings 
     Warning:net.authorize.sim.Transaction: can't find referenced class net.authorize.data.sim.HostedReceiptPageSettings 
     Warning:net.authorize.sim.Transaction: can't find referenced class net.authorize.sim.LinkMethod 
     Warning:net.authorize.sim.Transaction: can't find referenced class net.authorize.data.sim.HostedReceiptPageSettings 
     Warning:net.authorize.sim.Transaction: can't find referenced class net.authorize.sim.button.Button 
     Warning:net.authorize.sim.Transaction: can't find referenced class 
     Note: the configuration keeps the entry point 'android.support.design.widget.NavigationView { void setNavigationItemSelectedListener(android.support.design.widget.NavigationView$OnNavigationItemSelectedListener); }', but not the descriptor class 'android.support.design.widget.NavigationView$OnNavigationItemSelectedListener' 
     Note: the configuration keeps the entry point 'android.support.design.widget.Snackbar$SnackbarLayout { void setOnLayoutChangeListener(android.support.design.widget.Snackbar$SnackbarLayout$OnLayoutChangeListener); }', but not the descriptor class 'android.support.design.widget.Snackbar$SnackbarLayout$OnLayoutChangeListener' 
     Note: the configuration keeps the entry point 'android.support.design.widget.Snackbar$SnackbarLayout { void setOnAttachStateChangeListener(android.support.design.widget.Snackbar$SnackbarLayout$OnAttachStateChangeListener); }', but not the descriptor class 'android.support.design.widget.Snackbar$SnackbarLayout$OnAttachStateChangeListener' 
     Note: the configuration keeps the entry point 'android.support.design.widget.TabLayout { void setOnTabSelectedListener(android.support.design.widget.TabLayout$OnTabSelectedListener); }', but not the descriptor class 'android.support.design.widget.TabLayout$OnTabSelectedListener' 
     Note: the configuration keeps the entry point 'android.support.design.widget.TabLayout { void setTabsFromPagerAdapter(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.app.FragmentTabHost { void setup(android.content.Context,android.support.v4.app.FragmentManager); }', but not the descriptor class 'android.support.v4.app.FragmentManager' 
     Note: the configuration keeps the entry point 'android.support.v4.app.FragmentTabHost { void setup(android.content.Context,android.support.v4.app.FragmentManager,int); }', but not the descriptor class 'android.support.v4.app.FragmentManager' 
     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.view.ViewPager { void setPageTransformer(boolean,android.support.v4.view.ViewPager$PageTransformer); }', but not the descriptor class 'android.support.v4.view.ViewPager$PageTransformer' 
     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.app.MediaRouteButton { void setRouteSelector(android.support.v7.media.MediaRouteSelector); }', but not the descriptor class 'android.support.v7.media.MediaRouteSelector' 
     Note: the configuration keeps the entry point 'android.support.v7.app.MediaRouteButton { void setDialogFactory(android.support.v7.app.MediaRouteDialogFactory); }', but not the descriptor class 'android.support.v7.app.MediaRouteDialogFactory' 
     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.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.ActionBarOverlayLayout { void setMenu(android.view.Menu,android.support.v7.view.menu.MenuPresenter$Callback); }', but not the descriptor class 'android.support.v7.view.menu.MenuPresenter$Callback' 
     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.ActionMenuView { void setMenuCallbacks(android.support.v7.view.menu.MenuPresenter$Callback,android.support.v7.view.menu.MenuBuilder$Callback); }', but not the descriptor class 'android.support.v7.view.menu.MenuPresenter$Callback' 
     Note: the configuration keeps the entry point 'android.support.v7.widget.ActionMenuView { void setMenuCallbacks(android.support.v7.view.menu.MenuPresenter$Callback,android.support.v7.view.menu.MenuBuilder$Callback); }', but not the descriptor class 'android.support.v7.view.menu.MenuBuilder$Callback' 
     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.RecyclerView { void setAccessibilityDelegateCompat(android.support.v7.widget.RecyclerViewAccessibilityDelegate); }', but not the descriptor class 'android.support.v7.widget.RecyclerViewAccessibilityDelegate' 
     Note: the configuration keeps the entry point 'android.support.v7.widget.RecyclerView { void setAdapter(android.support.v7.widget.RecyclerView$Adapter); }', but not the descriptor class 'android.support.v7.widget.RecyclerView$Adapter' 
     Note: the configuration keeps the entry point 'android.support.v7.widget.RecyclerView { void setRecyclerListener(android.support.v7.widget.RecyclerView$RecyclerListener); }', but not the descriptor class 'android.support.v7.widget.RecyclerView$RecyclerListener' 
     Note: the configuration keeps the entry point 'android.support.v7.widget.RecyclerView { void setLayoutManager(android.support.v7.widget.RecyclerView$LayoutManager); }', but not the descriptor class 'android.support.v7.widget.RecyclerView$LayoutManager' 
     Note: the configuration keeps the entry point 'android.support.v7.widget.RecyclerView { void setRecycledViewPool(android.support.v7.widget.RecyclerView$RecycledViewPool); }', but not the descriptor class 'android.support.v7.widget.RecyclerView$RecycledViewPool' 
     Note: the configuration keeps the entry point 'android.support.v7.widget.RecyclerView { void setViewCacheExtension(android.support.v7.widget.RecyclerView$ViewCacheExtension); }', but not the descriptor class 'android.support.v7.widget.RecyclerView$ViewCacheExtension' 
     Note: the configuration keeps the entry point 'android.support.v7.widget.RecyclerView { void setChildDrawingOrderCallback(android.support.v7.widget.RecyclerView$ChildDrawingOrderCallback); }', but not the descriptor class 'android.support.v7.widget.RecyclerView$ChildDrawingOrderCallback' 
     Note: the configuration keeps the entry point 'android.support.v7.widget.RecyclerView { void setOnScrollListener(android.support.v7.widget.RecyclerView$OnScrollListener); }', but not the descriptor class 'android.support.v7.widget.RecyclerView$OnScrollListener' 
     Note: the configuration keeps the entry point 'android.support.v7.widget.RecyclerView { void setItemAnimator(android.support.v7.widget.RecyclerView$ItemAnimator); }', but not the descriptor class 'android.support.v7.widget.RecyclerView$ItemAnimator' 
     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.Toolbar { void setMenu(android.support.v7.view.menu.MenuBuilder,android.support.v7.widget.ActionMenuPresenter); }', but not the descriptor class 'android.support.v7.view.menu.MenuBuilder' 
     Note: the configuration keeps the entry point 'android.support.v7.widget.Toolbar { void setMenu(android.support.v7.view.menu.MenuBuilder,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.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.Toolbar { void setMenuCallbacks(android.support.v7.view.menu.MenuPresenter$Callback,android.support.v7.view.menu.MenuBuilder$Callback); }', but not the descriptor class 'android.support.v7.view.menu.MenuPresenter$Callback' 
     Note: the configuration keeps the entry point 'android.support.v7.widget.Toolbar { void setMenuCallbacks(android.support.v7.view.menu.MenuPresenter$Callback,android.support.v7.view.menu.MenuBuilder$Callback); }', but not the descriptor class 'android.support.v7.view.menu.MenuBuilder$Callback' 
     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.android.volley.toolbox.NetworkImageView { void setImageUrl(java.lang.String,com.android.volley.toolbox.ImageLoader); }', but not the descriptor class 'com.android.volley.toolbox.ImageLoader' 
     Note: the configuration keeps the entry point 'com.facebook.FacebookButtonBase { void setFragment(android.support.v4.app.Fragment); }', but not the descriptor class 'android.support.v4.app.Fragment' 
     Note: the configuration keeps the entry point 'com.facebook.login.widget.LoginButton { void setDefaultAudience(com.facebook.login.DefaultAudience); }', but not the descriptor class 'com.facebook.login.DefaultAudience' 
     Note: the configuration keeps the entry point 'com.facebook.login.widget.LoginButton { void setLoginBehavior(com.facebook.login.LoginBehavior); }', but not the descriptor class 'com.facebook.login.LoginBehavior' 
     Note: the configuration keeps the entry point 'com.facebook.login.widget.LoginButton { void setToolTipStyle(com.facebook.login.widget.ToolTipPopup$Style); }', but not the descriptor class 'com.facebook.login.widget.ToolTipPopup$Style' 
     Note: the configuration keeps the entry point 'com.facebook.login.widget.LoginButton { void setToolTipMode(com.facebook.login.widget.LoginButton$ToolTipMode); }', but not the descriptor class 'com.facebook.login.widget.LoginButton$ToolTipMode' 
     Note: the configuration keeps the entry point 'com.facebook.login.widget.LoginButton { void setProperties(com.facebook.login.widget.LoginButton$LoginButtonProperties); }', but not the descriptor class 'com.facebook.login.widget.LoginButton$LoginButtonProperties' 
     Note: the configuration keeps the entry point 'com.facebook.login.widget.LoginButton { void setLoginManager(com.facebook.login.LoginManager); }', but not the descriptor class 'com.facebook.login.LoginManager' 
     Note: the configuration keeps the entry point 'com.facebook.login.widget.ProfilePictureView { void setOnErrorListener(com.facebook.login.widget.ProfilePictureView$OnErrorListener); }', but not the descriptor class 'com.facebook.login.widget.ProfilePictureView$OnErrorListener' 
     Note: the configuration keeps the entry point 'com.facebook.share.internal.LikeBoxCountView { void setCaretPosition(com.facebook.share.internal.LikeBoxCountView$LikeBoxCountViewCaretPosition); }', but not the descriptor class 'com.facebook.share.internal.LikeBoxCountView$LikeBoxCountViewCaretPosition' 
     Note: the configuration keeps the entry point 'com.facebook.share.widget.LikeView { void setObjectIdAndType(java.lang.String,com.facebook.share.widget.LikeView$ObjectType); }', but not the descriptor class 'com.facebook.share.widget.LikeView$ObjectType' 
     Note: the configuration keeps the entry point 'com.facebook.share.widget.LikeView { void setLikeViewStyle(com.facebook.share.widget.LikeView$Style); }', but not the descriptor class 'com.facebook.share.widget.LikeView$Style' 
     Note: the configuration keeps the entry point 'com.facebook.share.widget.LikeView { void setAuxiliaryViewPosition(com.facebook.share.widget.LikeView$AuxiliaryViewPosition); }', but not the descriptor class 'com.facebook.share.widget.LikeView$AuxiliaryViewPosition' 
     Note: the configuration keeps the entry point 'com.facebook.share.widget.LikeView { void setHorizontalAlignment(com.facebook.share.widget.LikeView$HorizontalAlignment); }', but not the descriptor class 'com.facebook.share.widget.LikeView$HorizontalAlignment' 
     Note: the configuration keeps the entry point 'com.facebook.share.widget.LikeView { void setOnErrorListener(com.facebook.share.widget.LikeView$OnErrorListener); }', but not the descriptor class 'com.facebook.share.widget.LikeView$OnErrorListener' 
     Note: the configuration keeps the entry point 'com.facebook.share.widget.LikeView { void setFragment(android.support.v4.app.Fragment); }', but not the descriptor class 'android.support.v4.app.Fragment' 
     Note: the configuration keeps the entry point 'com.google.android.gms.ads.AdView { void setPlayStorePurchaseParams(com.google.android.gms.ads.purchase.PlayStorePurchaseListener,java.lang.String); }', but not the descriptor class 'com.google.android.gms.ads.purchase.PlayStorePurchaseListener' 
     Note: the configuration keeps the entry point 'com.google.android.gms.ads.AdView { void setInAppPurchaseListener(com.google.android.gms.ads.purchase.InAppPurchaseListener); }', but not the descriptor class 'com.google.android.gms.ads.purchase.InAppPurchaseListener' 
     Note: the configuration keeps the entry point 'com.google.android.gms.ads.AdView { void setAdSize(com.google.android.gms.ads.AdSize); }', but not the descriptor class 'com.google.android.gms.ads.AdSize' 
     Note: the configuration keeps the entry point 'com.google.android.gms.ads.AdView { void setAdListener(com.google.android.gms.ads.AdListener); }', but not the descriptor class 'com.google.android.gms.ads.AdListener' 
     Note: the configuration keeps the entry point 'com.google.android.gms.ads.BaseAdView { void setAdListener(com.google.android.gms.ads.AdListener); }', but not the descriptor class 'com.google.android.gms.ads.AdListener' 
     Note: the configuration keeps the entry point 'com.google.android.gms.ads.BaseAdView { void setAdSize(com.google.android.gms.ads.AdSize); }', but not the descriptor class 'com.google.android.gms.ads.AdSize' 
     Note: the configuration keeps the entry point 'com.google.android.gms.ads.BaseAdView { void setInAppPurchaseListener(com.google.android.gms.ads.purchase.InAppPurchaseListener); }', but not the descriptor class 'com.google.android.gms.ads.purchase.InAppPurchaseListener' 
     Note: the configuration keeps the entry point 'com.google.android.gms.ads.BaseAdView { void setPlayStorePurchaseParams(com.google.android.gms.ads.purchase.PlayStorePurchaseListener,java.lang.String); }', but not the descriptor class 'com.google.android.gms.ads.purchase.PlayStorePurchaseListener' 
     Note: the configuration keeps the entry point 'com.google.android.gms.ads.NativeExpressAdView { void setPlayStorePurchaseParams(com.google.android.gms.ads.purchase.PlayStorePurchaseListener,java.lang.String); }', but not the descriptor class 'com.google.android.gms.ads.purchase.PlayStorePurchaseListener' 
     Note: the configuration keeps the entry point 'com.google.android.gms.ads.NativeExpressAdView { void setInAppPurchaseListener(com.google.android.gms.ads.purchase.InAppPurchaseListener); }', but not the descriptor class 'com.google.android.gms.ads.purchase.InAppPurchaseListener' 
     Note: the configuration keeps the entry point 'com.google.android.gms.ads.NativeExpressAdView { void setAdSize(com.google.android.gms.ads.AdSize); }', but not the descriptor class 'com.google.android.gms.ads.AdSize' 
     Note: the configuration keeps the entry point 'com.google.android.gms.ads.NativeExpressAdView { void setAdListener(com.google.android.gms.ads.AdListener); }', but not the descriptor class 'com.google.android.gms.ads.AdListener' 
     Note: the configuration keeps the entry point 'com.google.android.gms.ads.doubleclick.PublisherAdView { void setAdListener(com.google.android.gms.ads.AdListener); }', but not the descriptor class 'com.google.android.gms.ads.AdListener' 
     Note: the configuration keeps the entry point 'com.google.android.gms.ads.doubleclick.PublisherAdView { void setAdSizes(com.google.android.gms.ads.AdSize[]); }', but not the descriptor class 'com.google.android.gms.ads.AdSize' 
     Note: the configuration keeps the entry point 'com.google.android.gms.ads.doubleclick.PublisherAdView { void setAppEventListener(com.google.android.gms.ads.doubleclick.AppEventListener); }', but not the descriptor class 'com.google.android.gms.ads.doubleclick.AppEventListener' 
     Note: the configuration keeps the entry point 'com.google.android.gms.ads.doubleclick.PublisherAdView { void setCorrelator(com.google.android.gms.ads.Correlator); }', but not the descriptor class 'com.google.android.gms.ads.Correlator' 
     Note: the configuration keeps the entry point 'com.google.android.gms.ads.doubleclick.PublisherAdView { void setOnCustomRenderedAdLoadedListener(com.google.android.gms.ads.doubleclick.OnCustomRenderedAdLoadedListener); }', but not the descriptor class 'com.google.android.gms.ads.doubleclick.OnCustomRenderedAdLoadedListener' 
    (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 87 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 80 library classes explicitly being kept. 
       You don't need to keep library classes; they are already left unchanged. 
       (http://proguard.sourceforge.net/manual/troubleshooting.html#libraryclass) 
     Note: there were 20 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) 
     Warning:there were 49 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. 
     :app:transformClassesAndResourcesWithProguardForRelease FAILED 
     Error:Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'. 
     > java.io.IOException: Please correct the above warnings first. 
     Information:BUILD FAILED 
     Information:Total time: 15.407 secs 
     Information:1 error 
     Information:25 warnings 
     Information:See complete output in console 
+0

沒有你不能建立apk與釋放,如果你想釋放apk然後生成簽名的apk .. –

回答

0

爲了得到過去,你需要將以下添加到您的ProGuard配置規則的當前錯誤:

-dontwarn net.authorize.sim.Transaction 

之後,你可能還需要添加額外的-keep規則,但至少構建不應該失敗了。

相關問題