2015-11-06 15 views
6

Attualmente sto provando a generare una build di rilascio per un'app in Android Studio. Ho cercato di sbarazzarmi di tutti i problemi durante la generazione della versione di rilascio ma sono bloccato su alcuni problemi.Errori durante la generazione dell'apk firmato: 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. 

Sono anche presentato con un errore in cui si afferma

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

Nel mio file Gradle ho impostato il seguente

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 { 
} 

}

mio elenco di dipendenze sono i segue

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' 
}} 

Come rimuovere i problemi e creare correttamente la build di rilascio ??

UPDATE:

ero in grado di sbarazzarsi di avvertimento relativi alle annotazioni Android.

io sono rimasto con il seguente problema

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

Potrebbe essere a causa 'FloatMath.ceil()' è decrepito. Devi cambiare con 'Math.ceil()'. – Fllo

+0

Come e dove dovrei apportare questa modifica? Fa parte di una biblioteca di viewindicator che ho trovato. – Rohan

+0

In effetti, questo sarà un problema. Ho avuto lo stesso problema ma ho usato la lib nella cartella locale, quindi sono stato in grado di cambiare questi metodi. Ci sono 'private' in LinePageIndicator.java, quindi non so almeno che ottieni questa lib nella cartella locale. – Fllo

risposta

9

Per me la soluzione attuale è quella di aggiungere la seguente riga al mio file Proguard:

-dontwarn com.viewpagerindicator.** 

Questo eliminerà warning in arrivo pacchetto di cui sopra, quando si crea versione build

+0

dovrei aggiungere ancora '-keep public class com.viewpagerindicator.LinePageIndicator'? – natsumiyu

0

Utilizzare questo, ha la soluzione.

compilazione 'fr.avianey.com.viewpagerindicator: library: [email protected]'

È possibile controllare questo github issue