首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法构建android演播室

无法构建android演播室
EN

Stack Overflow用户
提问于 2016-06-27 15:46:59
回答 1查看 891关注 0票数 3

现在已经一个星期了,我们无法为我们的安道尔项目建立apk文件。我们所得到的错误与pro卫士有关(请参阅附加错误):

警告:有416个未解决的对类或接口的引用。 错误:任务':app:transformClassesAndResourcesWithProguardForDebug'.执行失败java.io.IOException:请先更正上面的警告。

这个项目在我们最近的一次承诺之前就已经开始了。所以,当我们签出提交,它是有效的!我们已经在堆栈溢出/互联网上尝试了一切可用的,与此相关的,但是没有任何效果!最糟糕的是,它只是在我们的一台计算机上构建的,我们无法弄清楚为什么它不能在其他拥有相同版本的Android的计算机上工作。

我们甚至试图通过以下方法来压制警告:

-dontwarn -keep类

因此,在这种情况下,构建是成功的,但应用程序崩溃。

使用的不同组件的版本:

Android 2.1.2 保安人员- 5.2.1 buildToolsVersion 23.0.2

保护错误

以下是我们在我们的项目中使用的保护规则:

代码语言:javascript
复制
-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;
}
EN

回答 1

Stack Overflow用户

发布于 2016-06-27 16:35:44

当您添加一些依赖项时,会有一个巨大的更改,这个变化会使依赖关系代码变得模糊。因此,应该使用-dontwarn (基本上不警告您一些未解决的引用),应该使用-keep类

查找依赖项包名,然后防止它们的类被proguard蒙蔽。

-更新--

从您的日志中,有两个依赖关系需要解决: facebook和android-shape-imageview。

对于facebook来说,试着把它添加到你的守护程序中:

代码语言:javascript
复制
-keep class com.facebook.** {
   *;
}

形状-图像视图:

代码语言:javascript
复制
-dontwarn android.support.v7.**
-keep class android.support.v7.** { ; }
-keep interface android.support.v7.* { ; }
-keepattributes *Annotation,Signature
-dontwarn com.github.siyamed.**
-keep class com.github.siyamed.shapeimageview.**{ *; }

请参阅更多:

  1. Facebook的Android ProGuard设置
  2. 有人能用这个带护卫吗?
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38058201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档