1
请帮帮忙,的Android版本APK得到错误NoSuchFieldError
这是我第一次使用机器人工作室生成发布APK后,尝试了几天,我可以签我的项目,但是当我安装APK我总是得到这错误 ..
7290-7290/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.enma.app, PID: 7290
java.lang.NoSuchFieldError
at libcore.reflect.AnnotationAccess.decodeValue(AnnotationAccess.java:688)
at libcore.reflect.AnnotationAccess.toAnnotationInstance(AnnotationAccess.java:663)
at libcore.reflect.AnnotationAccess.toAnnotationInstance(AnnotationAccess.java:641)
at libcore.reflect.AnnotationAccess.getDeclaredAnnotation(AnnotationAccess.java:171)
at libcore.reflect.AnnotationAccess.getAnnotation(AnnotationAccess.java:72)
at java.lang.Class.getAnnotation(Class.java:359)
at com.c.a.c.f.al.<clinit>(Unknown Source)
at com.c.a.c.f.al.a(Unknown Source)
at com.c.a.c.z.<clinit>(Unknown Source)
at com.zopim.android.sdk.data.Parser.<init>(Unknown Source)
at com.zopim.android.sdk.data.Path.<init>(Unknown Source)
at com.zopim.android.sdk.data.ConnectionPath.<init>(Unknown Source)
at com.zopim.android.sdk.data.ConnectionPath.<clinit>(Unknown Source)
at com.zopim.android.sdk.data.PathDataSource.<init>(Unknown Source)
at com.zopim.android.sdk.api.ZopimChat.<clinit>(Unknown Source)
at com.enma.app.MyApp.onCreate(Unknown Source)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1018)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4914)
at android.app.ActivityThread.-wrap1(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1526)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5683)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
Caused by: java.lang.NoSuchFieldException: No field PUBLIC_ONLY in class Lcom/c/a/a/g; (declaration of 'com.c.a.a.g' appears in /data/app/com.enma.app-1/base.apk)
at java.lang.Class.getDeclaredField(Native Method)
at libcore.reflect.AnnotationAccess.decodeValue(AnnotationAccess.java:685)
at libcore.reflect.AnnotationAccess.toAnnotationInstance(AnnotationAccess.java:663)
at libcore.reflect.AnnotationAccess.toAnnotationInstance(AnnotationAccess.java:641)
at libcore.reflect.AnnotationAccess.getDeclaredAnnotation(AnnotationAccess.java:171)
at libcore.reflect.AnnotationAccess.getAnnotation(AnnotationAccess.java:72)
at java.lang.Class.getAnnotation(Class.java:359)
at com.c.a.c.f.al.<clinit>(Unknown Source)
at com.c.a.c.f.al.a(Unknown Source)
at com.c.a.c.z.<clinit>(Unknown Source)
at com.zopim.android.sdk.data.Parser.<init>(Unknown Source)
at com.zopim.android.sdk.data.Path.<init>(Unknown Source)
at com.zopim.android.sdk.data.ConnectionPath.<init>(Unknown Source)
at com.zopim.android.sdk.data.ConnectionPath.<clinit>(Unknown Source)
at com.zopim.android.sdk.data.PathDataSource.<init>(Unknown Source)
at com.zopim.android.sdk.api.ZopimChat.<clinit>(Unknown Source)
at com.enma.app.MyApp.onCreate(Unknown Source)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1018)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4914)
at android.app.ActivityThread.-wrap1(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1526)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5683)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)
这是我的gradle :
apply plugin: 'com.android.application'
android {
compileSdkVersion 'Google Inc.:Google APIs:23'
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.enma.app"
minSdkVersion 9
targetSdkVersion 17
multiDexEnabled true
signingConfig signingConfigs.HPAY
}
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/DEPENDENCIES'
}
productFlavors {
}
}
dependencies {
compile project(':volley')
compile 'com.android.support:support-v4:18.0.0'
compile files('libs/disklrucache-2.0.1.jar')
compile 'com.zopim.android:sdk:1.1.1'
compile 'com.android.support:appcompat-v7:23.1.1'
compile files('libs/httpcore-4.4.3.jar')
compile files('libs/httpclient-4.5.1.jar')
compile 'com.android.support:multidex:1.0.0'
}
任何帮助将不胜感激。
谢谢
感谢您的响应,这是我ProGuard的,现在我的应用程序可以正常工作,但为什么混淆了一些来源无法正常工作。
Proguard的
# This is a configuration file for ProGuard.
# http://proguard.sourceforge.net/index.html#manual/usage.html
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose
# Optimization is turned off by default. Dex does not like code run
# through the ProGuard optimize and preverify steps (and performs some
# of these optimizations on its own).
#-dontoptimize
#-dontpreverify
# If you want to enable optimization, you should include the
# following:
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
-optimizationpasses 5
-allowaccessmodification
#
# Note that you cannot just include these flags in your own
# configuration file; if you are including this file, optimization
# will be turned off. You'll need to either edit this file, or
# duplicate the contents of this file and remove the include of this
# file from your project's proguard.config path property.
-dontwarn **
-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 public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keep public class * implements java.io.Serializable
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.support.v4.app.ListFragment
-keep class com.android.volley.** { *; }
-keep interface com.android.volley.** { *; }
-keep class com.fasterxml.jackson.** {*;}
-keep class com.zopim.android.** {*;}
-keep class org.apache.http.** {*;}
-ignorewarnings
-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 * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
后保护档案。 – Shane
您是否创建了一个Application类来扩展MultidexApplication? –
** compileSdkVersion'Google Inc.:Google API:23'** to ** compileSdkVersion“23”** –