Android 问题生成apk文件

Android 问题生成apk文件,android,gradle,Android,Gradle,我正在使用一个应用程序,其中我在我的应用程序的build.gradle文件中启用了runProguard true。当我去构建签名的apk时,我收到警告,构建过程失败 日志文件: Warning:com.google.common.base.Absent: can't find referenced class javax.annotation.Nullable Warning:com.google.common.base.Ascii: can't find referenced class j

我正在使用一个应用程序,其中我在我的应用程序的build.gradle文件中启用了runProguard true。当我去构建签名的apk时,我收到警告,构建过程失败

日志文件:

Warning:com.google.common.base.Absent: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Ascii: can't find referenced class javax.annotation.CheckReturnValue
Warning:com.google.common.base.CaseFormat$StringConverter: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.CharMatcher: can't find referenced class javax.annotation.CheckReturnValue
Warning:com.google.common.base.Converter: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Converter$ConverterComposition: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Converter$FunctionBasedConverter: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Converter$ReverseConverter: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Defaults: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Enums$StringConverter: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Equivalence: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Equivalence$EquivalentToPredicate: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Equivalence$Wrapper: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.FinalizableReferenceQueue$FinalizerLoader: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Function: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.FunctionalEquivalence: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Functions: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Functions$ConstantFunction: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Functions$ForMapWithDefault: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Functions$FunctionComposition: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Functions$FunctionForMapNoDefault: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Functions$IdentityFunction: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Functions$PredicateFunction: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Functions$SupplierFunction: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Joiner: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Joiner: can't find referenced class javax.annotation.CheckReturnValue
Warning:com.google.common.base.Joiner$1: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Joiner$MapJoiner: can't find referenced class javax.annotation.CheckReturnValue
Warning:com.google.common.base.MoreObjects: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.MoreObjects$ToStringHelper: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Objects: can't find referenced class javax.annotation.CheckReturnValue
Warning:com.google.common.base.Objects: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Objects$ToStringHelper: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Optional: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.PairwiseEquivalence: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Preconditions: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Predicate: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Predicates: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Predicates$AndPredicate: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Predicates$AssignableFromPredicate: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Predicates$CompositionPredicate: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Predicates$ContainsPatternPredicate: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Predicates$InPredicate: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Predicates$InstanceOfPredicate: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Predicates$IsEqualToPredicate: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Predicates$NotPredicate: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Predicates$ObjectPredicate$1: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Predicates$ObjectPredicate$2: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Predicates$ObjectPredicate$3: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Predicates$ObjectPredicate$4: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Predicates$OrPredicate: can't find referenced class javax.annotation.Nullable
Warning:com.google.common.base.Present: can't find referenced class javax.annotation.Nullable
格雷德尔先生

apply plugin: 'com.android.application'

android {

    signingConfigs {

    }
    compileSdkVersion 21

    buildToolsVersion '20.0.0'

    defaultConfig {

        minSdkVersion 15

        targetSdkVersion 21

        versionCode 1

        versionName '1.0'

    }
    buildTypes {

        release {

            runProguard true

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 

'proguard-rules.pro'
        }

    }
    productFlavors {

    }
        packagingOptions {

            exclude 'META-INF/LICENSE.txt'

            exclude 'META-INF/NOTICE.txt'
        }

}

dependencies {

    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.google.guava:guava:18.0'

    compile 'com.google.code.gson:gson:2.3'

    compile 'com.microsoft.azure:azure-mobile-services-android-sdk:2.0.2-beta+'

    compile (group: 'com.microsoft.azure', name: 'azure-notifications-handler', version: '1.0.1', ext: 'jar')

    compile project(':library')

    compile project(':StyleableDateTimePicker-master')

    compile 'com.facebook.android:facebook-android-sdk:3.23.+'

    compile 'com.android.support:support-v4:22.0.0+'

    compile 'com.android.support:appcompat-v7:22.0.0'

    compile 'com.google.android.gms:play-services:6.5.87'

    compile 'com.github.navasmdc:MaterialDesign:1.+@aar'

    compile 'com.android.support:recyclerview-v7:21.0.0'

    compile 'com.android.support:cardview-v7:21.0.+'

    compile 'com.melnykov:floatingactionbutton:1.1.0'

    compile 'com.ToxicBakery.viewpager.transforms:view-pager-transforms:1.1.0@aar'

    compile 'de.hdodenhof:circleimageview:1.2.2'

    compile 'com.github.alamkanak:android-week-view:1.2.1'

    compile('ch.acra:acra:4.5.0') {

        exclude group: 'org.json'
    }

    compile 'com.github.machinarius:preferencefragment:0.1.1'

}

你不能再使用proguard了,你需要使用它

minifyEnabled false

我想我终于弄明白了

渐变依赖性:

dependencies {
    ...
    compile 'com.google.guava:guava:18.0'
    /* Required for using guava with proguard */
    compile 'javax.annotation:jsr250-api:1.0'
}
添加到我的proguard配置:

##-------------Begin Settings For Guava ------------------------------------------------------------
#https://github.com/krschultz/android-proguard-snippets/blob/master/libraries/proguard-guava.pro
# Configuration for Guava
#
# disagrees with instructions provided by Guava project: https://code.google.com/p/guava-libraries/wiki/UsingProGuardWithGuava
#
# works if you add the following line to the Gradle dependencies
#
# provided 'javax.annotation:jsr250-api:1.0'
-keep class com.google.common.io.Resources {
    public static <methods>;
}
-keep class com.google.common.collect.Lists {
    public static ** reverse(**);
}
-keep class com.google.common.base.Charsets {
    public static <fields>;
}

-keep class com.google.common.base.Joiner {
    public static Joiner on(String);
    public ** join(...);
}

-keep class com.google.common.collect.MapMakerInternalMap$ReferenceEntry
-keep class com.google.common.cache.LocalCache$ReferenceEntry

-dontwarn sun.misc.Unsafe
-dontwarn javax.annotation.**

##-------------End Settings For Guava --------------------------------------------------------------
##-----------------开始番石榴的设置------------------------------------------------------------
#https://github.com/krschultz/android-proguard-snippets/blob/master/libraries/proguard-guava.pro
#番石榴的配置
#
#不同意Guava项目提供的指示:https://code.google.com/p/guava-libraries/wiki/UsingProGuardWithGuava
#
#如果将以下行添加到Gradle依赖项,则可以使用
#
#提供了“javax.annotation:jsr250 api:1.0”
-保留com.google.common.io.Resources类{
公共静态;
}
-保留com.google.common.collect.list类{
公共静态**反向(**);
}
-保留com.google.common.base.charset类{
公共静态;
}
-保留com.google.common.base.Joiner类{
公共静态接合器(串);
公众**加入(…);
}
-保留com.google.common.collect.MapMakerInternalMap$ReferenceEntry类
-保留类com.google.common.cache.LocalCache$ReferenceEntry
-dontwarn sun.misc
-dontwarn javax.annotation**
##-------------番石榴的末端设置--------------------------------------------------------------

帮助我的链接


发布你的构建。gradleI解决了这个问题。太棒了:)你可以删除你的发布或公开答案others@user3351125我可以知道你是怎么解决的吗?请您发布您的答案,以便其他人也可以参考:)我使用runProgurad true解决了这个问题,不需要使用minifyEnabled trueok,我在文档中看到,当使用gradle 1+,使用minifyEnable时,可以解决当前android studio版本中的问题Disabled proguard不是一个解决方案