2015-08-22 18 views
7

Play Store için imzalı bir APK oluşturmanız gerekiyor. (Android Studio'yu kullanarak) Eğer bunu proguard olmadan yaparsam (minifyEnabled build.gradle'da false) hepsi iyi çalışıyor!Android imzalı APK üretimi: Başvurulan sınıf/yöntem için Proguard istisnası bulunamadı

ben varsayılan parametrelerle etkinleştirmek: Birkaç sonra

Error:Execution failed for task ':app:packageRelease'. 
> Unable to compute hash of ...\app\build\intermediates\classes-proguard\release\classes.jar 

:

buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

ben bu uyarıları

:app:proguardRelease 
Warning: com.android.volley.error.VolleyErrorHelper$1: can't find superclass or interface com.google.gson.reflect.TypeToken 
Warning: com.android.volley.error.VolleyErrorHelper: can't find referenced class com.google.gson.Gson 
Warning: com.android.volley.error.VolleyErrorHelper: can't find referenced class com.google.gson.Gson 
Warning: com.android.volley.error.VolleyErrorHelper: can't find referenced method 'java.lang.reflect.Type getType()' in program class com.android.volley.error.VolleyErrorHelper$1 
Warning: com.android.volley.error.VolleyErrorHelper: can't find referenced class com.google.gson.Gson 
Warning: com.android.volley.error.VolleyErrorHelper$1: can't find referenced class com.google.gson.reflect.TypeToken 
Warning: com.android.volley.error.VolleyErrorHelper$1: can't find referenced class com.google.gson.reflect.TypeToken 
Warning: com.android.volley.error.VolleyErrorHelper$1: can't find referenced class com.google.gson.reflect.TypeToken 
Warning: com.android.volley.request.GsonRequest: can't find referenced class com.google.gson.Gson 
Warning: com.android.volley.request.GsonRequest: can't find referenced class com.google.gson.Gson 
Warning: com.android.volley.request.GsonRequest: can't find referenced class com.google.gson.Gson 
Warning: com.android.volley.request.GsonRequest: can't find referenced class com.google.gson.JsonSyntaxException 
Warning: com.android.volley.request.GsonRequest: can't find referenced class com.google.gson.JsonSyntaxException 
Warning: com.android.volley.request.GsonRequest: can't find referenced class com.google.gson.Gson 
Warning: com.android.volley.request.GsonRequest: can't find referenced class com.google.gson.JsonSyntaxException 
Warning: com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl: can't find referenced method 'long getContentLengthLong()' in program class com.squareup.okhttp.internal.huc.HttpURLConnectionImpl 
Warning: com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl: can't find referenced method 'long getHeaderFieldLong(java.lang.String,long)' in program class com.squareup.okhttp.internal.huc.HttpURLConnectionImpl 
Warning: okio.DeflaterSink: can't find referenced class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement 
Warning: okio.Okio: can't find referenced class java.nio.file.Files 
Warning: okio.Okio: can't find referenced class java.nio.file.Files 
Warning: okio.Okio: can't find referenced class java.nio.file.Files 
Warning: okio.Okio: can't find referenced class java.nio.file.Path 
Warning: okio.Okio: can't find referenced class java.nio.file.OpenOption 
Warning: okio.Okio: can't find referenced class java.nio.file.Path 
Warning: okio.Okio: can't find referenced class java.nio.file.OpenOption 
Warning: okio.Okio: can't find referenced class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement 
Warning: okio.Okio: can't find referenced class java.nio.file.Path 
Warning: okio.Okio: can't find referenced class java.nio.file.OpenOption 
Warning: okio.Okio: can't find referenced class java.nio.file.Path 
Warning: okio.Okio: can't find referenced class java.nio.file.OpenOption 
Warning: okio.Okio: can't find referenced class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement 
Warning: there were 28 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 3 unresolved references to program class members. 
     Your input classes appear to be inconsistent. 
     You may need to recompile the code. 
     (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedprogramclassmember) 
Exception while processing task 
java.io.IOException: Please correct the above warnings first. 
    at proguard.Initializer.execute(Initializer.java:473) 
    at proguard.ProGuard.initialize(ProGuard.java:233) 
    at proguard.ProGuard.execute(ProGuard.java:98) 
    at proguard.gradle.ProGuardTask.proguard(ProGuardTask.java:1074) 
    at com.android.build.gradle.tasks.AndroidProGuardTask.doMinification(AndroidProGuardTask.java:137) 
    at com.android.build.gradle.tasks.AndroidProGuardTask$1.run(AndroidProGuardTask.java:113) 
    at com.android.builder.tasks.Job.runTask(Job.java:48) 
    at com.android.build.gradle.tasks.SimpleWorkQueue$EmptyThreadContext.runTask(SimpleWorkQueue.java:41) 
    at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:227) 
    at java.lang.Thread.run(Thread.java:745) 
:app:dexRelease UP-TO-DATE 
:app:validateExternalOverrideSigning 
:app:packageRelease 

Ve bu mesaj ile inşa süreci durdurmak almak Heyetler wi uyarıları kaldırmak için bir yol buldum Benim "proguard-rules.pro" bu çizgilerin inci:

-dontwarn com.android.volley.** 
-dontwarn com.squareup.okhttp.** 
-dontwarn okio.** 

Ama inşa süreci hala yanlışlıkla gidiyor! Bu sorun için herkesin bir çözümü var mı?

Teşekkürler! Davide

cevap

2

Bunun yerine, başvurulan sınıfa dontwarn uygulamalısınız. Birkaç girişimi ... Burada çözüm sonra

-dontwarn com.google.gson.** 
-dontwarn java.nio.file.** 
+0

Merhaba Raymond. Haklısın ... yazdığın gibi dontwarn shold. Ancak bu Proguard ile APK oluşturmak için yeterli değildi. Desteğin için teşekkürler! – Davide

5

: Örneğin

Raymond önerdiği gibi

İlk dontwarn yapılandırmak (belki bu gerekli değildir ama bunu sol):

:
-dontwarn com.google.gson.** 
-dontwarn java.nio.file.** 
-dontwarn org.codehaus.mojo.animal_sniffer.** 
-dontwarn com.squareup.okhttp.internal.huc.** 
-dontwarn com.android.volley.error.** 

Sonra Kitaplığımı atlamak için ProGuard yapılandırmak 10

Derlemenin tamam olduğunu ancak çalışma zamanında çalışmanın çökmesi. Yani, bu sorunu önlemek için, ben ekledim bu çizgiler: i oluşturmak mümkün değilim bu ayarlarla

java.lang.RuntimeException: Could not inflate Behavior subclass

: bu iplikten bulunan bazı bilgi dayalı

-keep class android.support.design.widget.** { *; } 
-keep interface android.support.design.widget.** { *; } 
-dontwarn android.support.design.** 

Uygulamamın APK'sını imzaladı.

İlgili konular