【问题标题】:Release build: transformClassesAndResourcesWithProguardForRelease FAILED发布版本:transformClassesAndResourcesWithProguardForRelease FAILED
【发布时间】:2017-08-03 18:10:12
【问题描述】:

生成签名的 APK:

Note: there were 8 unresolved dynamic references to classes or interfaces.
Note: there were 4 accesses to class members by means of introspection.
Warning: there were 5 unresolved references to classes or interfaces.
Warning: there were 1 unresolved references to program class members.

transformClassesAndResourcesWithProguardForRelease FAILED

Full Gradle log is here.

My app build.gradle is here.

UPDStacktrace is here.

如果我使用 -ignorewarnings 选项,则该应用会在某些 Android 版本上崩溃。

大概是在去 Room 之后,我停止生成签名的 APK。 我还必须将 com.google.firebase、com.google.android.gms:play-services 从 11.0.4 降级到 11.0.2

两个简单的问题(对于那些知道的人)。

日志说:

Try: Run with --stacktrace option to get the stack trace. 
Run with --info or --debug option to get more log output.

第一季度。我可以在 Android Studio 的哪个位置指定“--stacktrace”、“--info 或--debug”选项?

第二季度。如何(我阅读日志)我必须找出缺少哪些课程?我应该去哪里看?要寻找什么?

【问题讨论】:

标签: android gradle proguard android-proguard


【解决方案1】:

Q1:在项目根目录的命令行中:./gradlew build --stacktrace

Q2:您应该修复此警告:

Warning: android.arch.persistence.room.paging.LimitOffsetDataSource: can't find superclass or interface android.arch.util.paging.CountedDataSource
Warning: android.arch.persistence.room.paging.LimitOffsetDataSource: can't find referenced class android.arch.util.paging.CountedDataSource
Warning: android.arch.persistence.room.paging.LimitOffsetDataSource: can't find referenced class android.arch.util.paging.CountedDataSource
Warning: android.arch.persistence.room.paging.LimitOffsetDataSource: can't find referenced class android.arch.util.paging.CountedDataSource
Warning: android.arch.persistence.room.paging.LimitOffsetDataSource: can't find referenced class android.arch.util.paging.CountedDataSource
Warning: android.arch.persistence.room.paging.LimitOffsetDataSource$1: can't find referenced method 'void invalidate()' in program class android.arch.persistence.room.paging.LimitOffsetDataSource

您可以尝试将其添加到您的 proguard 文件中:

-dontwarn android.arch.util.paging.CountedDataSource
-dontwarn android.arch.persistence.room.paging.LimitOffsetDataSource

【讨论】:

    【解决方案2】:

    您可以在这里查看缺少哪些类

    Warning: android.arch.persistence.room.paging.LimitOffsetDataSource: can't find superclass or interface android.arch.util.paging.CountedDataSource
    Warning: android.arch.persistence.room.paging.LimitOffsetDataSource: can't find referenced class android.arch.util.paging.CountedDataSource
    Warning: android.arch.persistence.room.paging.LimitOffsetDataSource: can't find referenced class android.arch.util.paging.CountedDataSource
    Warning: android.arch.persistence.room.paging.LimitOffsetDataSource: can't find referenced class android.arch.util.paging.CountedDataSource
    Warning: android.arch.persistence.room.paging.LimitOffsetDataSource: can't find referenced class android.arch.util.paging.CountedDataSource
    Warning: android.arch.persistence.room.paging.LimitOffsetDataSource$1: can't find referenced method 'void invalidate()' in program class android.arch.persistence.room.paging.LimitOffsetDataSource
    

    看看如何实现 proguard 来处理这些类,您可以尝试将其添加到您的 proguard-rules.pro 文件中:

    -dontwarn android.arch.**
    

    或者你可以从你的构建中禁用 proguard (here)

    【讨论】:

      猜你喜欢
      • 2017-02-07
      • 2021-02-13
      • 2016-10-09
      • 1970-01-01
      • 2012-12-20
      • 1970-01-01
      • 2010-10-27
      • 2020-08-02
      相关资源
      最近更新 更多