ProXard的AndroidX构建问题

Moh*_*hbi 17 android android-support-library androidx

关闭

我们正在尝试将android库(正在编译android支持库)集成到已迁移到androidX的项目中.我们得到的原因不明

can't find referenced method 'void addOnTabSelectedListener(com.google.android.material.tabs.TabLayout$OnTabSelectedListener)' in program class com.google.android.material.tabs.TabLayout
Run Code Online (Sandbox Code Playgroud)

同时尝试启用proguard启用构建.

gradle-wrapper: 4.8

gradle build tools : 3.2.0

compileSdkVersion 28

编辑于2018年10月9日

出于某种原因,这是一个计划问题,proguard显示错误的错误,在我们对源代码进行了一些更改后,忘了向proguard添加一些类,它改变了我们忘记添加的类的错误.添加后,一切都很顺利.

Rob*_*eda 11

我认为你应该告诉proguard不要混淆材料类.

尝试在proguardrules.pro文件中添加以下行:

-keep class com.google.android.material.** { *; }

-dontwarn com.google.android.material.**
-dontnote com.google.android.material.**

-dontwarn androidx.**
-keep class androidx.** { *; }
-keep interface androidx.** { *; }
Run Code Online (Sandbox Code Playgroud)

编辑也添加这两行

buildscript {
    repositories {
        maven {
            url "http://storage.googleapis.com/r8-releases/raw/master"
        }
    }

    dependencies {
        classpath 'com.android.tools:r8:ff9c89416cc1c8adf83d481a1e5fd515fcb893b9'
        classpath 'com.android.tools.build:gradle:your version'
    }
}
Run Code Online (Sandbox Code Playgroud)

EDIT2也添加这些行

-keep class com.google.android.material.** { *; }

-dontwarn com.google.android.material.**
-dontnote com.google.android.material.**

-dontwarn androidx.**
-keep class androidx.** { *; }
-keep interface androidx.** { *; }
Run Code Online (Sandbox Code Playgroud)

然后,在build.gradle中

buildscript {
    repositories {
        maven {
            url "http://storage.googleapis.com/r8-releases/raw/master"
        }
    }

    dependencies {
        classpath 'com.android.tools:r8:ff9c89416cc1c8adf83d481a1e5fd515fcb893b9'
        classpath 'com.android.tools.build:gradle:your version'
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 在`androidx`包中保留*everything*超出了矫枉过正. (16认同)
  • 发布完整的堆栈请!:) (2认同)