【问题标题】:Android - glide jar issue when making signed apkAndroid - 制作签名apk时的滑动jar问题
【发布时间】:2017-04-29 11:59:05
【问题描述】:

我在制作签名 apk 时遇到以下错误, 请帮我解决这个问题。 我在应用中使用了 Glide jar。

[2017-04-29 17:22:42 - myApp] 警告:com.bumptech.glide.manager.SupportRequestManagerFragment:找不到引用的方法“android.support.v4.app.Fragment getParentFragment()” com.bumptech.glide.manager.SupportRequestManagerFragment 类

[2017-04-29 17:22:42 - myApp] 警告:com.bumptech.glide.manager.SupportRequestManagerFragment:在中找不到引用的方法 'android.support.v4.app.FragmentActivity getActivity()' com.bumptech.glide.manager.SupportRequestManagerFragment 类

[2017-04-29 17:22:42 - myApp] 警告:对程序类成员有 2 个未解析的引用。

[2017-04-29 17:22:42 - myApp]          您的输入类似乎不一致。

[2017-04-29 17:22:42 - myApp]         您可能需要重新编译它们并重试。

[2017-04-29 17:22:42 - myApp]          或者,您可能需要指定选项

[2017-04-29 17:22:42 - myApp]         '-dontskipnonpubliclibraryclassmembers'。

[2017-04-29 17:22:42 - myApp] java.io.IOException: 请先更正上述警告。

[2017-04-29 17:22:42 - myApp] 在 proguard.Initializer.execute(Initializer.java:321)

[2017-04-29 17:22:42 - myApp] 在 proguard.ProGuard.initialize(ProGuard.java:211)

[2017-04-29 17:22:42 - myApp] 在 proguard.ProGuard.execute(ProGuard.java:86)

[2017-04-29 17:22:42 - myApp] 在 proguard.ProGuard.main(ProGuard.java:492)

【问题讨论】:

    标签: android eclipse android-glide


    【解决方案1】:

    您遇到此错误是因为您在发布 apk 中使用了 proGuard

    您可能需要在proguard.cfg / proguard.pro 中包含以下行

    -keep public class * implements com.bumptech.glide.module.GlideModule
    -keep public enum 
    com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
      **[] $VALUES;
      public *;
    }
    
    # for DexGuard only
    -keepresourcexmlelements manifest/application/meta-data@value=GlideModule
    

    【讨论】:

      【解决方案2】:

      如果您在 project.properties 中的“proguard.cfg”路径错误,则可能会发生此错误。 确保您声明正确的路径,示例如下

          proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard.cfg
      

      如果错误仍然存​​在,请对 proguard.cfg 文件中所有抛出错误/警告的包执行以下操作

          -dontwarn com.google.code.**
          -dontwarn oauth.signpost.**
          -dontwarn twitter4j.**
      

      工作 proguard.cfg 文件示例:

          -optimizationpasses 5
          -dontusemixedcaseclassnames
          -dontskipnonpubliclibraryclasses
          -dontskipnonpubliclibraryclassmembers
          -dontpreverify
          -dontshrink
          -verbose
      
          -injars bin/classes
          -injars libs
          -outjars bin/classes-processed.jar
      
          -libraryjars C:/glassfish3/jdk7/jre/lib/rt.jar 
          -libraryjars C:/glassfish3/jdk7/lib/tools.jar
      
          -dontwarn org.apache.**
          -dontwarn org.slf4j.**
          -dontwarn org.json.*
          -dontwarn org.mortbay.**
          -dontwarn org.apache.log4j.**
          -dontwarn org.apache.commons.logging.**
          -dontwarn org.apache.commons.logging.**
          -dontwarn org.apache.commons.codec.binary.**
          -dontwarn javax.xml.**
          -dontwarn javax.management.**
          -dontwarn java.lang.management.**
          -dontwarn android.support.**
          -dontwarn com.google.code.**
          -dontwarn oauth.signpost.**
          -dontwarn twitter4j.**
      
          -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
      
          -keep public class * extends android.app.Activity
          -keep public class * extends android.app.Application
          -keep public class * extends android.app.Service
          -keep public class * extends android.content.BroadcastReceiver
          -keep public class * extends android.content.ContentProvider
          -keep public class * extends android.app.backup.BackupAgentHelper
          -keep public class * extends android.preference.Preference
          -keep public class com.android.vending.licensing.ILicensingService
          -keep public class com.google.code.linkedinapi.**
      
          -keep class javax.**  { *; }
          -keep class org.**  { *; }
          -keep class twitter4j.**  { *; }
          -keep class java.lang.management.**  { *; }
          -keep class com.google.code.**  { *; }
          -keep class oauth.signpost.**  { *; }
      
          -keepclassmembers public class         com.google.code.linkedinapi.client.impl.LinkedInApiXppClient {
       public <init>(java.lang.String, java.lang.String);
          }
      
          -keepclasseswithmembernames class * {
      native <methods>;
          }
      
          -keepclasseswithmembernames class * {
      public <init>(android.content.Context, android.util.AttributeSet);
          }
      
          -keepclasseswithmembernames class * {
              public <init>(android.content.Context, android.util.AttributeSet, int);
                  }
      
          -keepclassmembers enum * {
              public static **[] values();
              public static ** valueOf(java.lang.String);
          }
      
          -keep class * implements android.os.Parcelable {
            public static final android.os.Parcelable$Creator *;
      

      }

      【讨论】:

        猜你喜欢
        • 2015-11-21
        • 1970-01-01
        • 2020-11-21
        • 1970-01-01
        • 1970-01-01
        • 2014-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多