2015-11-06 151 views
6

我目前正在尝试为Android Studio中的应用生成发布版本。我试图摆脱所有问题,同时生成发布版本,但我坚持几个问题。生成已签名apk的发布错误:Proguard config

Warning:com.viewpagerindicator.LinePageIndicator: can't find referenced method 'float ceil(float)' in library class android.util.FloatMath 
Warning:org.androidannotations.api.rest.RestClientHeaders: can't find referenced class org.springframework.http.HttpAuthentication 
Warning:org.androidannotations.api.rest.RestClientSupport: can't find referenced class org.springframework.web.client.RestTemplate 
Warning:org.androidannotations.api.rest.RestErrorHandler: can't find referenced class org.springframework.core.NestedRuntimeException 
Warning:there were 4 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:there were 1 unresolved references to library class members. 
    You probably need to update the library versions. 
    (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember) 
Exception while processing task 
java.io.IOException: Please correct the above warnings first. 

我也呈现其中规定

Error:Execution failed for task ':app:packageRelease'. 
> Unable to compute hash of /Users/rohanmahale/AndroidStudioProjects/Prism/app/build/intermediates/classes-proguard/release/classes.jar 

在我gradle这个文件中的错误我设置的依赖以下

android { 
compileSdkVersion 23 
buildToolsVersion '23.0.2' 
defaultConfig { 
    applicationId 'com.prism.prismapp' 
    minSdkVersion 16 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 
} 
buildTypes { 
    release { 
     minifyEnabled true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
productFlavors { 
} 

}

我列举部分如下

dependencies { 
compile fileTree(include: ['*.jar'], dir: 'libs') 
apt "org.androidannotations:androidannotations:$AAVersion" 
compile "org.androidannotations:androidannotations-api:$AAVersion" 
compile 'com.android.support:appcompat-v7:23.1.0' 
compile 'com.android.support:cardview-v7:23.0.+' 
compile 'com.android.support:recyclerview-v7:23.0.+' 
compile 'de.greenrobot:eventbus:2.4.0' 
compile 'com.joooonho:selectableroundedimageview:1.0.1' 
compile 'com.commonsware.cwac:camera:0.6.+' 
compile 'com.squareup.retrofit:retrofit:1.9.0' 
compile 'commons-io:commons-io:2.4' 
compile 'com.facebook.android:facebook-android-sdk:4.7.0' 
compile 'com.github.nkzawa:socket.io-client:0.5.2' 
compile 'io.nlopez.smartlocation:library:3.2.0' 
compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
    transitive = true; 
} 
compile 'uk.co.chrisjenx:calligraphy:2.1.0' 
compile 'com.github.bumptech.glide:glide:3.6.1' 
compile 'com.pixplicity.multiviewpager:library:1.0' 
compile 'com.githang:viewpagerindicator:[email protected]' 
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3.1' 
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3.1' 
compile 'com.commit451:PhotoView:1.2.4' 
compile 'me.villani.lorenzo.android:android-cropimage:1.1.0' 
compile ('com.google.android.gms:play-services-analytics:8.1.0') { 
    exclude module: 'play-services-ads' 
}} 

如何摆脱问题并成功创建发布版本?

UPDATE:

我能够摆脱与Android的注释的警告。

我离开我用下面的问题

Warning:com.viewpagerindicator.LinePageIndicator: can't find referenced method 'float ceil(float)' in library class android.util.FloatMath 
Warning:there were 1 unresolved references to library class members. 
    You probably need to update the library versions. 
     (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedlibraryclassmember) 
+1

这可能是因为'FloatMath.ceil()'减少。你必须用'Math.ceil()'来改变。 – Fllo

+0

我应该如何以及在哪里进行此更改?它是我发现的一个视图库的一部分。 – Rohan

+0

确实,这将是一个问题。我得到了同样的问题,但我在本地文件夹中使用lib,因此我能够更改这些方法。在LinePageIndicator.java中有'private',所以我不知道你至少在本地文件夹中得到这个lib。 – Fllo

回答

9

对我来说,目前的解决方案是将下面的行添加到我的ProGuard文件:

-dontwarn com.viewpagerindicator.** 

这将删除警告以上包时到来您创建版本构建

+0

我还应该加上'-keep public class com.viewpagerindicator.LinePageIndicator'吗? – natsumiyu

相关问题