Java Can';t用R8标记APK
我正在准备将我的应用程序部署到playstore,我目前的专业知识是基于proguard的,看来现在我们必须使用R8,所以我遵循Android开发者网站上的指南,因为R8可以使用相同的pro guard文件和配置,我只是简单地创建并添加了工作所需的规则。就在我准备注册时,我遇到了以下错误:Java Can';t用R8标记APK,java,android,android-studio,proguard,android-r8,Java,Android,Android Studio,Proguard,Android R8,我正在准备将我的应用程序部署到playstore,我目前的专业知识是基于proguard的,看来现在我们必须使用R8,所以我遵循Android开发者网站上的指南,因为R8可以使用相同的pro guard文件和配置,我只是简单地创建并添加了工作所需的规则。就在我准备注册时,我遇到了以下错误: C:\Users\bgatica\.gradle\caches\transforms-2\files-2.1\10d9066f27f47bf4c88827e811c3eb8a\obfusion diction
C:\Users\bgatica\.gradle\caches\transforms-2\files-2.1\10d9066f27f47bf4c88827e811c3eb8a\obfusion dictionary.txt'
我找到了那个路径,看起来这些文件是由gradle生成的?我在互联网上搜索了一个类似的错误,或者他们指导创建这个文件的教程,但是没有,你能帮我吗
这是我的配置
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
multiDexKeepFile file('multidex-config.txt')
}
}
这是我对Proguard的配置
-不翻转
-优化过程5
-dontusemixedcaseclassnames
-DontskipnonPublicLibraryClass
-dontskipnonpubliclibraryclassmembers
-不要翻转
-冗长的
-优化!代码/简化/算术,!字段/*,!类/合并/*,!代码/分配/变量
-重新打包类“”
-允许访问修改
#-优化!代码/简化/算术
-keepattributes*注释*
-keep public class*扩展android.app.Activity
-keep public class*扩展android.app.Application
-keep public class*扩展了android.app.Service
-keep public class*扩展了android.content.BroadcastReceiver
-keep public class*扩展了android.content.ContentProvider
-保持类org.kobjects.*{*;}
-保持类org.ksoap2.*{*;}
-保持类org.kxml2.*{*;}
-保持类org.xmlpull.*{*;}
-dontwarn org.kobjects**
-dontwarn org.ksoap2**
-dontwarn org.kxml2**
-dontwarn org.xmlpull.v1**
-dontwarn android.app**
-dontwarn android.support**
-dontwarn.view**
-dontwarn android.widget**
-dontwarn com.google.common.primitives**
-唐特沃恩**
-dontwarn**蜂窝MR2
-dontwarn**CompatCreator蜂窝MR2
-dontwarn javax.annotation.Nullable
-dontwarn com.google**
-keep public class*扩展了android.view.view{
public(android.content.Context);
public(android.content.Context、android.util.AttributeSet);
public(android.content.Context,android.util.AttributeSet,int);
公共无效集*(…);
}
-KeepClassSwithMemberNames类*{
本地人;
}
-keepclassswithmembers类*{
public(android.content.Context、android.util.AttributeSet);
public(android.content.Context,android.util.AttributeSet,int);
}
-keepclassswithmembers类*{
public(android.content.Context,android.util.AttributeSet,int);
}
-keepclassmembers类*扩展了android.app.Activity{
public void*(android.view.view);
}
-keepclassmembers类*扩展了android.content.Context{
public void*(android.view.view);
public void*(android.view.MenuItem);
}
-keepclassmembers类*实现android.os.Parcelable{
静态**创建者;
}
-keepclassmembers类**.R$*{
公共静态;
}
-keepclassmembers类*{
@android.webkit.JavascriptInterface;
}
-dontwarn android.support**
-dontwarn com.google.android.gms**
#-优化过程5
-dontusemixedcaseclassnames
-DontskipnonPublicLibraryClass
-不要翻转
-冗长的
#-优化!代码/简化/算术,!字段/*,!类/合并/*
-重命名SourceFileAttribute源文件
-keepattributes源文件,LineNumberTable
# http://stackoverflow.com/questions/4525661/android-proguard-cant-find-dynamically-referenced-class-javax-swing
-dontwarn java.awt**
-不要忘记java.awt**
-dontwarn com.badlogic.gdx.jnigen**
-keep public class*扩展了android.app.backup.BackupAgentHelper
-keep public class*扩展了android.preference.preference
-保持公共类com.android.vending.licensing.ILicensingService
-KeepClassSwithMemberNames类*{
本地人;
}
-keepclassswithmembers类*{
public(android.content.Context、android.util.AttributeSet);
}
-keepclassswithmembers类*{
public(android.content.Context,android.util.AttributeSet,int);
}
-keepclassmembers类*扩展了android.app.Activity{
public void*(android.view.view);
}
-keepclassmembers枚举*{
公共静态**[]值();
公共静态**valueOf(java.lang.String);
}
-keep class*实现android.os.Parcelable{
公开静态最终android.os.Parcelable$Creator*;
}
-keepclassmembers类**.R$*{
公共静态;
}
-keepattributes*注释*
-keepclassmembers类**{
@org.greenrobot.eventbus.Subscribe;
}
-保持枚举org.greenrobot.eventbus.ThreadMode{*;}
#仅当使用AsyncExecutor时才需要
-keepclassmembers类*扩展org.greenrobot.eventbus.util.ThrowableFailureEvent{
(java.lang.Throwable);
}
-keepclassmembers类**{
公共无效事件*(**);
}
-保留署名
-保持类okhttp3.*{*;}
-保持接口okhttp3.*{*;}
-dontwarn okhttp3**
#忽略用于构建工具的注释。
-dontwarn org.codehaus.mojo.animal_sniffer.ignorejrrequirement
#忽略JSR305注释以嵌入可空性信息。
-dontwarn javax.annotation**
#由NoClassDefFoundError try/catch保护,仅在类路径上使用。
-dontwarn kotlin.单位
#只能由Kotlin使用的顶级函数。
-dontwarn改装2.Kotlin
-dontwarn改装2.Kotlin$*
#在R8完全模式下,它看不到改型接口的子类型,因为它们是用代理创建的
#并将所有潜在值替换为null。显式保留接口可以防止出现这种情况。
-if接口*{@reformation2.http.*;}
-保持,AllowFusion接口
-唐特沃恩·奥基奥**
-dontwarn 2.Platform$Java8
除了文件名之外,错误中没有更多的信息吗?您能否使用--stacktrace
选项(/gradlew--stacktrace clean assembleerelease
)运行gradlew
?这可能是一个具有自己的Proguard配置文件的依赖项。您可以添加选项-printconfigurat吗
-dontpreverify
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*,!code/allocation/variable
-repackageclasses ''
-allowaccessmodification
#-optimizations !code/simplification/arithmetic
-keepattributes *Annotation*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep class org.kobjects.** { *; }
-keep class org.ksoap2.** { *; }
-keep class org.kxml2.** { *; }
-keep class org.xmlpull.** { *; }
-dontwarn org.kobjects.**
-dontwarn org.ksoap2.**
-dontwarn org.kxml2.**
-dontwarn org.xmlpull.v1.**
-dontwarn android.app.**
-dontwarn android.support.**
-dontwarn android.view.**
-dontwarn android.widget.**
-dontwarn com.google.common.primitives.**
-dontwarn **CompatHoneycomb
-dontwarn **CompatHoneycombMR2
-dontwarn **CompatCreatorHoneycombMR2
-dontwarn javax.annotation.Nullable
-dontwarn com.google.**
-keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers class * extends android.content.Context {
public void *(android.view.View);
public void *(android.view.MenuItem);
}
-keepclassmembers class * implements android.os.Parcelable {
static ** CREATOR;
}
-keepclassmembers class **.R$* {
public static <fields>;
}
-keepclassmembers class * {
@android.webkit.JavascriptInterface <methods>;
}
-dontwarn android.support.**
-dontwarn com.google.android.gms.**
#-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
#-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
# http://stackoverflow.com/questions/4525661/android-proguard-cant-find-dynamically-referenced-class-javax-swing
-dontwarn java.awt.**
-dontnote java.awt.**
-dontwarn com.badlogic.gdx.jnigen.**
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
-keepclassmembers class **.R$* {
public static <fields>;
}
-keepattributes *Annotation*
-keepclassmembers class ** {
@org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
# Only required if you use AsyncExecutor
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
<init>(java.lang.Throwable);
}
-keepclassmembers class ** {
public void onEvent*(**);
}
-keepattributes Signature
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-dontwarn okhttp3.**
# Ignore annotation used for build tooling.
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
# Ignore JSR 305 annotations for embedding nullability information.
-dontwarn javax.annotation.**
# Guarded by a NoClassDefFoundError try/catch and only used when on the classpath.
-dontwarn kotlin.Unit
# Top-level functions that can only be used by Kotlin.
-dontwarn retrofit2.KotlinExtensions
-dontwarn retrofit2.KotlinExtensions$*
# With R8 full mode, it sees no subtypes of Retrofit interfaces since they are created with a Proxy
# and replaces all potential values with null. Explicitly keeping the interfaces prevents this.
-if interface * { @retrofit2.http.* <methods>; }
-keep,allowobfuscation interface <1>
-dontwarn okio.**
-dontwarn retrofit2.Platform$Java8