现在已经过去一周了,我们无法为我们的安卓项目构建apk文件。我们得到的错误与proguard有关(请参见附加的错误):
警告:存在416个未解决的类或接口引用。
错误:任务“:app:transformClassesAndResourcesWithProguardForDebug”的执行失败。 java.io.IOException:请先纠正上述警告。
该项目以前可以构建。因此,当我们切换到该提交时,它可以工作!我们尝试了stackoverflow / internet上所有可用的与此相关的内容,但没有任何作用!最糟糕的是,它只能在我们的一台电脑上构建,我们无法弄清楚为什么在其他具有相同版本的Android Studio的计算机上无法工作。
我们甚至尝试通过使用以下方法来抑制警告:
-dontwarn -keep class
在这种情况下,构建是成功的,但应用程序崩溃了。
不同组件的版本:
Android Studio - 2.1.2 Proguard - 5.2.1 buildToolsVersion 23.0.2
警告:存在416个未解决的类或接口引用。
错误:任务“:app:transformClassesAndResourcesWithProguardForDebug”的执行失败。 java.io.IOException:请先纠正上述警告。
该项目以前可以构建。因此,当我们切换到该提交时,它可以工作!我们尝试了stackoverflow / internet上所有可用的与此相关的内容,但没有任何作用!最糟糕的是,它只能在我们的一台电脑上构建,我们无法弄清楚为什么在其他具有相同版本的Android Studio的计算机上无法工作。
我们甚至尝试通过使用以下方法来抑制警告:
-dontwarn -keep class
在这种情况下,构建是成功的,但应用程序崩溃了。
不同组件的版本:
Android Studio - 2.1.2 Proguard - 5.2.1 buildToolsVersion 23.0.2
以下是我们项目使用的Proguard规则:
-dontwarn com.github.siyamed.shapeimageview.path.parser.SvgToPath
-dontwarn com.google.android.gms.internal.zzhu
-dontwarn com.squareup.okhttp.**
-keep class com.opentok.** { *; }
-keep class org.webrtc.** { *; }
-keepattributes SourceFile,LineNumberTable
-keepattributes *Annotation*
-keep class org.acra.** { *; }
-keepclassmembers class com.paytm.pgsdk.PaytmWebView$PaytmJavaScriptInterface {
public *;
}
##MoEngage proguard rules, src : http://docs.moengage.com/docs/android-configuring-proguard
-dontwarn com.google.android.gms.location.**
-dontwarn com.google.android.gms.gcm.**
-dontwarn com.google.android.gms.iid.**
-dontwarn okio.**
-keep class com.google.android.gms.gcm.** { *; }
-keep class com.google.android.gms.iid.** { *; }
-keep class com.google.android.gms.location.** { *; }
-keep class com.facebook.drawee.**{*;}
-dontwarn com.facebook.drawee.*
-keep class com.moe.pushlibrary.activities.** { *; }
-keep class com.moe.pushlibrary.internal.MoEService
-keep class com.moe.pushlibrary.GeofenceIntentService
-keep class com.moe.pushlibrary.InstallReceiver
-keep class com.moengage.push.MoEPushWorker
-keep class com.moe.pushlibrary.PushGcmBroadcastReceiver
-keep class com.moe.pushlibrary.providers.MoEProvider
-keep class com.moengage.receiver.MoEInstanceIDListener
-keep class com.moengage.worker.MoEGCMListenerService
-keep class com.moe.pushlibrary.models.** { *;}
-keep class com.moe.pushlibrary.internal.GeoTask
-keep class com.moengage.locationlibrarynew.LocationHandlerImpl
-dontwarn com.moengage.locationlibrarynew.LocationHandlerImpl
-dontwarn com.moe.pushlibrary.internal.GeoTask
-dontwarn com.moengage.receiver.*
-dontwarn com.moengage.worker.*
-dontwarn com.moengage.*
-keep class com.delight.** { *; }
## for rx java
-dontwarn sun.misc.**
-keepclassmembers class rx.internal.util.unsafe.*ArrayQueue*Field* {
long producerIndex;
long consumerIndex;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueProducerNodeRef {
rx.internal.util.atomic.LinkedQueueNode producerNode;
}
-keepclassmembers class rx.internal.util.unsafe.BaseLinkedQueueConsumerNodeRef {
rx.internal.util.atomic.LinkedQueueNode consumerNode;
}