Signed apk error: proguard can't find referenced class android.arch.core.util.Function after com.firebaseui:firebase-ui-database update to 2.3.0
Signed apk error: proguard can't find referenced class android.arch.core.util.Function after com.firebaseui:firebase-ui-database update to 2.3.0
更新后
compile 'com.firebaseui:firebase-ui-database:0.4.0'
至
compile 'com.firebaseui:firebase-ui-database:2.3.0'
我能够在我的测试设备上编译和 运行 我的应用程序,但是在尝试生成签名的 apk 时,我在 'messages gradle build' 中得到了这个。我认为这是一个混淆问题:
Information:Gradle tasks [:app:assembleRelease]
Warning:android.arch.lifecycle.Transformations: can't find referenced class android.arch.core.util.Function
Warning:android.arch.lifecycle.Transformations: can't find referenced class android.arch.core.util.Function
Warning:android.arch.lifecycle.Transformations: can't find referenced class android.arch.core.util.Function
Warning:there were 16 unresolved references to classes or interfaces.
Warning:Exception while processing task java.io.IOException: Please correct the above warnings first.
Error:Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.
> Job failed, see logs for details
Information:BUILD FAILED in 11s
Information:1 error
Information:5 warnings
Information:See complete output in console
我试过增量版本更新,但也没有用。例如:
compile 'com.firebaseui:firebase-ui-database:2.0.0'
甚至不会同步,给出合并错误消息。
我还更新了我的其他 SDK,但 firebaseui 行现在会触发它。这是我在评论中被问到的部分应用程序 gradle:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:design:26.1.0'
compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.google.android.gms:play-services-drive:11.4.0'
compile 'com.google.android.gms:play-services-plus:11.4.0'
compile 'com.google.android.gms:play-services-location:11.4.0'
compile 'com.google.android.gms:play-services-auth:11.4.0'
compile 'com.google.android.gms:play-services-wallet:11.4.0'
compile 'com.google.android.gms:play-services-games:11.4.0'
compile 'com.android.support:support-v4:26.1.0'
compile 'com.android.support:support-v13:26.1.0'
compile 'com.google.firebase:firebase-core:11.4.0'
compile 'com.google.firebase:firebase-invites:11.4.0'
compile 'com.google.firebase:firebase-ads:11.4.0'
compile 'com.google.firebase:firebase-database:11.4.0'
compile 'com.google.firebase:firebase-auth:11.4.0'
compile 'com.google.firebase:firebase-config:11.4.0'
compile 'com.google.firebase:firebase-messaging:11.4.0'
compile 'com.google.firebase:firebase-crash:11.4.0'
compile 'com.google.firebase:firebase-analytics:11.4.0'
compile 'com.google.firebase:firebase-appindexing:11.4.0'
compile 'com.firebaseui:firebase-ui-database:2.3.0'
}
这是评论中也提到的我的 proguard 规则,我尝试在末尾添加了几行。我已经尝试过各种语法但没有效果。
-renamesourcefileattribute SourceFile
-keepattributes Signature
-keepattributes SourceFile
-keepattributes LineNumberTable
-keepattributes *Annotation*
-keep class com.android.**
-keepclassmembers class com.android.**
我发现错误消息中的 proguard 引用是一个转移注意力的问题。这是在我的 proguard-rules 文件中添加了数十条额外规则无济于事之后。添加auth编译后:
compile 'com.firebaseui:firebase-ui-database:2.3.0'
compile 'com.firebaseui:firebase-ui-auth:2.3.0'
我能够构建一个签名的 apk(在此过程的早期添加此行导致错误,所以我放弃了它)。奇怪的是,
compile 'com.firebaseui:firebase-ui-database:0.4.0'
我不需要授权编译。
此外,在添加 auth 编译后,我必须将应用程序中的所有编译版本“26.1.0”更改为“26.0.1”gradle以避免合并错误,大概是使用新的 auth 编译。尽管 'newer version is available 26.1.0' 建议它给我这些编译。我正在使用的最新 buildToolsVersion 是:
buildToolsVersion "26.0.1"
无论 java 编码技能如何,这些都是通过艰苦的经验在 android 开发中克服的障碍。
我在 'com.firebaseui:firebase-ui-database:2.4.0' 上也遇到了这个错误。
proguard 的这个添加对我有用。只需将它放在您的混淆器规则中的任何位置即可:
-dontwarn android.arch.**
更新后
compile 'com.firebaseui:firebase-ui-database:0.4.0'
至
compile 'com.firebaseui:firebase-ui-database:2.3.0'
我能够在我的测试设备上编译和 运行 我的应用程序,但是在尝试生成签名的 apk 时,我在 'messages gradle build' 中得到了这个。我认为这是一个混淆问题:
Information:Gradle tasks [:app:assembleRelease]
Warning:android.arch.lifecycle.Transformations: can't find referenced class android.arch.core.util.Function
Warning:android.arch.lifecycle.Transformations: can't find referenced class android.arch.core.util.Function
Warning:android.arch.lifecycle.Transformations: can't find referenced class android.arch.core.util.Function
Warning:there were 16 unresolved references to classes or interfaces.
Warning:Exception while processing task java.io.IOException: Please correct the above warnings first.
Error:Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.
> Job failed, see logs for details
Information:BUILD FAILED in 11s
Information:1 error
Information:5 warnings
Information:See complete output in console
我试过增量版本更新,但也没有用。例如:
compile 'com.firebaseui:firebase-ui-database:2.0.0'
甚至不会同步,给出合并错误消息。
我还更新了我的其他 SDK,但 firebaseui 行现在会触发它。这是我在评论中被问到的部分应用程序 gradle:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:design:26.1.0'
compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.google.android.gms:play-services-drive:11.4.0'
compile 'com.google.android.gms:play-services-plus:11.4.0'
compile 'com.google.android.gms:play-services-location:11.4.0'
compile 'com.google.android.gms:play-services-auth:11.4.0'
compile 'com.google.android.gms:play-services-wallet:11.4.0'
compile 'com.google.android.gms:play-services-games:11.4.0'
compile 'com.android.support:support-v4:26.1.0'
compile 'com.android.support:support-v13:26.1.0'
compile 'com.google.firebase:firebase-core:11.4.0'
compile 'com.google.firebase:firebase-invites:11.4.0'
compile 'com.google.firebase:firebase-ads:11.4.0'
compile 'com.google.firebase:firebase-database:11.4.0'
compile 'com.google.firebase:firebase-auth:11.4.0'
compile 'com.google.firebase:firebase-config:11.4.0'
compile 'com.google.firebase:firebase-messaging:11.4.0'
compile 'com.google.firebase:firebase-crash:11.4.0'
compile 'com.google.firebase:firebase-analytics:11.4.0'
compile 'com.google.firebase:firebase-appindexing:11.4.0'
compile 'com.firebaseui:firebase-ui-database:2.3.0'
}
这是评论中也提到的我的 proguard 规则,我尝试在末尾添加了几行。我已经尝试过各种语法但没有效果。
-renamesourcefileattribute SourceFile
-keepattributes Signature
-keepattributes SourceFile
-keepattributes LineNumberTable
-keepattributes *Annotation*
-keep class com.android.**
-keepclassmembers class com.android.**
我发现错误消息中的 proguard 引用是一个转移注意力的问题。这是在我的 proguard-rules 文件中添加了数十条额外规则无济于事之后。添加auth编译后:
compile 'com.firebaseui:firebase-ui-database:2.3.0'
compile 'com.firebaseui:firebase-ui-auth:2.3.0'
我能够构建一个签名的 apk(在此过程的早期添加此行导致错误,所以我放弃了它)。奇怪的是,
compile 'com.firebaseui:firebase-ui-database:0.4.0'
我不需要授权编译。
此外,在添加 auth 编译后,我必须将应用程序中的所有编译版本“26.1.0”更改为“26.0.1”gradle以避免合并错误,大概是使用新的 auth 编译。尽管 'newer version is available 26.1.0' 建议它给我这些编译。我正在使用的最新 buildToolsVersion 是:
buildToolsVersion "26.0.1"
无论 java 编码技能如何,这些都是通过艰苦的经验在 android 开发中克服的障碍。
我在 'com.firebaseui:firebase-ui-database:2.4.0' 上也遇到了这个错误。
proguard 的这个添加对我有用。只需将它放在您的混淆器规则中的任何位置即可:
-dontwarn android.arch.**