java.lang.IllegalAccessError:方法'void android.support.v4.content [英] java.lang.IllegalAccessError: Method 'void android.support.v4.content

查看:1477
本文介绍了java.lang.IllegalAccessError:方法'void android.support.v4.content的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我更新了我的SDK中的playservice,并且出现了这个错误。我无法访问GCM令牌。在更新sdk之前,我的项目完美地工作。



我浪费了整整一天的时间,但没有找到任何解决方案。我尝试了这个,但是在这个依赖关系中得到错误 com.google.android.gms:play-services-plus:9.0.0



这是我的 logcat

 导致:java.lang.IllegalAccessError:方法'void android.support.v4.content.ContextCompat。< init> ;()'无法访问类'com.google.android.gms.iid.zzd'('com.google.android.gms.iid.zzd'声明出现在/data/data/com.hwindiapp.passenger/中文件/即时运行/ DEX /切片com.google.android.gms播放服务-IID-9.0.0_b51865a18dbfbfb3651aaa54856c955adf1e354f-classes.dex)
在com.google.android.gms.iid.zzd.zzeC (未知来源)
在com.google.android.gms.iid.zzd。< init>(未知来源)
在com.google.android.gms.iid.zzd。< init> (未知来源)
在com.google.android.gms.iid.InstanceID.zza(未知来源)
在com.goog le.android.gms.iid.InstanceID.getInstance(来源不明)
在com.mainProfile.classFiles.RegisterFbLoginResCallBack $ registerFBUser.processGCMID_user(RegisterFbLoginResCallBack.java:166)
在com.mainProfile.classFiles.RegisterFbLoginResCallBack $ registerFBUser.doInBackground(RegisterFbLoginResCallBack.java:219)
在com.mainProfile.classFiles.RegisterFbLoginResCallBack $ registerFBUser.doInBackground(RegisterFbLoginResCallBack.java:153)
在android.os.AsyncTask $ 2.call(的AsyncTask。 java:292)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:231)
在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:587)
在java.lang。 Thread.run(Thread.java:818)
12-01 12:23:59.553 18157-18703 / com.hwindiapp.passenger E / ACRA:不添加buildConfig来记录。未找到类:com.VolleyLibFiles.BuildConfig。请在您的ACRA配置中配置'buildConfigClass'
12-01 12:24:00.013 18157-19059 / com.hwindiapp.passenger E / AndroidRuntime:致命异常:AsyncTask#4
过程:com.hwindiapp。乘客,PID:18157
java.lang.RuntimeException:在android.os.AsyncTask中执行doInBackground()
时发生错误$ 3.done(AsyncTask.java:304)$ java
。 util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run( FutureTask.java:242)
at android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)$ $ java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:587)$ b $在java.lang.Thread.run(Thread.java:818)
导致:java。 lang.IllegalAccessError:方法'void android.support.v4.content.Co < init>()'无法访问类com.google.android.gms.iid.zzd'(com.google.android.gms.iid.zzd的声明出现在/ data / data / com中.hwindiapp.passenger /文件/即时运行/ DEX /切片com.google.android.gms播放服务-IID-9.0.0_b51865a18dbfbfb3651aaa54856c955adf1e354f-classes.dex)
。在com.google.android.gms。 iid.zzd.zzeC(未知来源)
,位于com.google.android.gms.iid.zzd。< init>(未知来源)
,位于com.google.android.gms.iid.zzd 。< init>(Unknown Source)
at com.google.android.gms.iid.InstanceID.zza(Unknown Source)
at com.google.android.gms.iid.InstanceID.getInstance(未知来源)
at com.mainProfile.classFiles.RegisterFbLoginResCallBack $ registerFBUser.processGCMID_user(RegisterFbLoginResCallBack.java:166)
at com.mainProfile.classFiles.RegisterFbLoginResCallBack $ registerFBUser.doInBackground(RegisterFbLoginResCallBack.java:219)
在com.mainProfile.classFiles.Register FbLoginResCallBack $ registerFBUser.doInBackground(RegisterFbLoginResCallBack.java:153)
at android.os.AsyncTask $ 2.call(AsyncTask.java:292)

在这行代码中显示错误

  InstanceID instanceID = InstanceID.getInstance(mContext ); 
GCMregistrationId = instanceID.getToken(CommonUtilities.SENDER_ID,GoogleCloudMessaging.INSTANCE_ID_SCOPE,
null);

这里是我的 gradle

  apply plugin:'com.android.application'

android {
signingConfigs {
config {
keyAlias'hwindi'
keyPassword'123456'
storeFile文件('D:/ Company Projects / Hwindi / Project 2 / Play_KeyStore / HwindiKeyStore.jks')
storePassword'123456'
}
}
compileSdkVersion 24
buildToolsVersion24.0.3
defaultConfig {
applicationIdcom.hwindiapp.passenger
minSdkVersion 16
targetSdkVersion 24
versionCode 12
versionName1.12
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard- android.txt'),'proguard-rules.pro'
}
}
packagingOptions {
排除'lib / arm64-v8a / libcardioDecider.so'
排除'lib / arm64-v8a / libcardioRecognizer.so'
排除'lib / arm64-v8a / libcardioRecognizer_tegra2.so'
排除'lib / arm64-v8a / libopencv_core.so'
排除'lib / arm64-v8a / libopencv_imgproc.so'
排除'lib / armeabi / libcardioDecider.so'
排除'lib /armeabi-v7a/libcardioDecider.so '
排除 '的lib / armeabi-V7A / libcardioRecognizer.so'
排除 'LIB / armeabi-V7A / libcardioRecognizer_tegra2.so'
排除' 的lib / armeabi
排除'lib / armeabi-v7a / libopencv_imgproc.so'
排除'lib / mips / libcardioDecider.so'
排除'lib / x86 / libcardioDecider.so '
exclude'lib / x86 / libcardioRecognizer.so'
排除'lib / x86 / libcardioRecognizer_tegra2.so'
排除'lib / x86 / libopencv_core.so'
排除 '的lib / 86 / libopencv_imgproc.so'
排除 '的lib / x86_64的/ libcardioDecider.so'
排除 '的lib / x86_64的/ libcardioRecognizer.so'
排除的lib / x86_64的/ libcardioRecognizer_tegra2。因此'
exclude'lib / x86_64 / libopencv_core.so'
exclude'lib / x86_64 / libopencv_imgproc.so'
}
configurations.all {
/ * resolutionStrategy {
force'com.android.support:design:23.4.0'
force'com.android.support:support-v4:23.4.0'
force'com.android.support :appcompat-v7:23.4.0'
} * /
}
}
知识库{
mavenCentral()
maven {urlhttps:/ /jitpack.io}
}

依赖关系{
编译fileTree(包括:''.jar'],dir:'libs')
testCompile 'com.squareup:fest-android:1.0.8'){
排除模块:'support-v4'
}
编译'com.android.su pport:appcompat-v7:24.2.0'
compile'c​​om.android.support:design:24.2.0'
compile'c​​om.android.support:cardview-v7:24.2.0'
编译'com.android.support:recyclerview-v7:24.2.0'
编译'com.google.android.gms:play-services-gcm:9.0.0'
compile'c​​om。 google.android.gms:play-services-location:9.0.0'
compile'c​​om.google.android.gms:play-services-maps:9.0.0'
compile'c​​om.google。 android.gms:play-services-plus:9.0.0'
compile'c​​om.facebook.android:facebook-android-sdk:[4,5)'
compile'c​​om.paypal.sdk: paypal-android-sdk:2.13.3'
compile'c​​om.wdullaer:materialdatetimepicker:2.2.0'
compile'c​​om.mukesh:permissions:1.0.3'
}


解决方案

请检查您的声明的依赖项。正如在给定的文档中所讨论的那样,有三种不同类型的直接依赖于应用程序/模块的 build.gradle 文件。



示例依赖关系如下所示:

  android {...} 
...
依赖关系{
//'编译'配置告诉Gradle将依赖关系添加到
编译类路径中,并将其包含在最终包中。

//依赖于该项目中的mylibrary模块
编译项目(:mylibrary)

//远程二进制依赖项
编译'com.android.support:appcompat-v7:25.0.1'

//本地二进制依赖项
编译fileTree(dir:'libs',include:['* .jar'] )
}

此外,如 @ Diego Giorgini 在相关 SO帖子


您遇到的问题是由于$ b之间的不兼容$ b play-services / firebase sdk v9.0.0 com.android.support:appcompat-v7> = 24 (与android-N sdk一起发布的版本)


有了这个,你可能想尝试一下建议的修正:


您应该可以通过定位早期版本的支持库来修复它。像:

compile'c​​om.android.support:appcompat-v7:23.4.0'


您可能还想检查以下SO帖子中的其他建议:


I updated playservice in my sdk and I got this error. And I am not able to access GCM Token. Before update sdk my project work perfectly.

I waste my whole day in it but not found any solution. I tried this but gettting error in this dependencies com.google.android.gms:play-services-plus:9.0.0

Here is my logcat

Caused by: java.lang.IllegalAccessError: Method 'void android.support.v4.content.ContextCompat.<init>()' is inaccessible to class 'com.google.android.gms.iid.zzd' (declaration of 'com.google.android.gms.iid.zzd' appears in /data/data/com.hwindiapp.passenger/files/instant-run/dex/slice-com.google.android.gms-play-services-iid-9.0.0_b51865a18dbfbfb3651aaa54856c955adf1e354f-classes.dex)
   at com.google.android.gms.iid.zzd.zzeC(Unknown Source)
   at com.google.android.gms.iid.zzd.<init>(Unknown Source)
   at com.google.android.gms.iid.zzd.<init>(Unknown Source)
   at com.google.android.gms.iid.InstanceID.zza(Unknown Source)
   at com.google.android.gms.iid.InstanceID.getInstance(Unknown Source)
   at com.mainProfile.classFiles.RegisterFbLoginResCallBack$registerFBUser.processGCMID_user(RegisterFbLoginResCallBack.java:166)
   at com.mainProfile.classFiles.RegisterFbLoginResCallBack$registerFBUser.doInBackground(RegisterFbLoginResCallBack.java:219)
   at com.mainProfile.classFiles.RegisterFbLoginResCallBack$registerFBUser.doInBackground(RegisterFbLoginResCallBack.java:153)
   at android.os.AsyncTask$2.call(AsyncTask.java:292)
   at java.util.concurrent.FutureTask.run(FutureTask.java:237)
   at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
   at java.lang.Thread.run(Thread.java:818) 
12-01 12:23:59.553 18157-18703/com.hwindiapp.passenger E/ACRA: Not adding buildConfig to log. Class Not found : com.VolleyLibFiles.BuildConfig. Please configure 'buildConfigClass' in your ACRA config
12-01 12:24:00.013 18157-19059/com.hwindiapp.passenger E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #4
 Process: com.hwindiapp.passenger, PID: 18157
 java.lang.RuntimeException: An error occured while executing doInBackground()
     at android.os.AsyncTask$3.done(AsyncTask.java:304)
     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
     at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
     at java.util.concurrent.FutureTask.run(FutureTask.java:242)
     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
     at java.lang.Thread.run(Thread.java:818)
  Caused by: java.lang.IllegalAccessError: Method 'void android.support.v4.content.ContextCompat.<init>()' is inaccessible to class 'com.google.android.gms.iid.zzd' (declaration of 'com.google.android.gms.iid.zzd' appears in /data/data/com.hwindiapp.passenger/files/instant-run/dex/slice-com.google.android.gms-play-services-iid-9.0.0_b51865a18dbfbfb3651aaa54856c955adf1e354f-classes.dex)
     at com.google.android.gms.iid.zzd.zzeC(Unknown Source)
     at com.google.android.gms.iid.zzd.<init>(Unknown Source)
     at com.google.android.gms.iid.zzd.<init>(Unknown Source)
     at com.google.android.gms.iid.InstanceID.zza(Unknown Source)
     at com.google.android.gms.iid.InstanceID.getInstance(Unknown Source)
     at com.mainProfile.classFiles.RegisterFbLoginResCallBack$registerFBUser.processGCMID_user(RegisterFbLoginResCallBack.java:166)
     at com.mainProfile.classFiles.RegisterFbLoginResCallBack$registerFBUser.doInBackground(RegisterFbLoginResCallBack.java:219)
     at com.mainProfile.classFiles.RegisterFbLoginResCallBack$registerFBUser.doInBackground(RegisterFbLoginResCallBack.java:153)
 at android.os.AsyncTask$2.call(AsyncTask.java:292)

Showing error in this line of code

 InstanceID instanceID = InstanceID.getInstance(mContext);
            GCMregistrationId = instanceID.getToken(CommonUtilities.SENDER_ID, GoogleCloudMessaging.INSTANCE_ID_SCOPE,
                    null);

And here is my gradle

    apply plugin: 'com.android.application'

android {
    signingConfigs {
        config {
            keyAlias 'hwindi'
            keyPassword '123456'
            storeFile file('D:/Company Projects/Hwindi/Project 2/Play_KeyStore/HwindiKeyStore.jks')
            storePassword '123456'
        }
    }
    compileSdkVersion 24
    buildToolsVersion "24.0.3"
    defaultConfig {
        applicationId "com.hwindiapp.passenger"
        minSdkVersion 16
        targetSdkVersion 24
        versionCode 12
        versionName "1.12"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'lib/arm64-v8a/libcardioDecider.so'
        exclude 'lib/arm64-v8a/libcardioRecognizer.so'
        exclude 'lib/arm64-v8a/libcardioRecognizer_tegra2.so'
        exclude 'lib/arm64-v8a/libopencv_core.so'
        exclude 'lib/arm64-v8a/libopencv_imgproc.so'
        exclude 'lib/armeabi/libcardioDecider.so'
        exclude 'lib/armeabi-v7a/libcardioDecider.so'
        exclude 'lib/armeabi-v7a/libcardioRecognizer.so'
        exclude 'lib/armeabi-v7a/libcardioRecognizer_tegra2.so'
        exclude 'lib/armeabi-v7a/libopencv_core.so'
        exclude 'lib/armeabi-v7a/libopencv_imgproc.so'
        exclude 'lib/mips/libcardioDecider.so'
        exclude 'lib/x86/libcardioDecider.so'
        exclude 'lib/x86/libcardioRecognizer.so'
        exclude 'lib/x86/libcardioRecognizer_tegra2.so'
        exclude 'lib/x86/libopencv_core.so'
        exclude 'lib/x86/libopencv_imgproc.so'
        exclude 'lib/x86_64/libcardioDecider.so'
        exclude 'lib/x86_64/libcardioRecognizer.so'
        exclude 'lib/x86_64/libcardioRecognizer_tegra2.so'
        exclude 'lib/x86_64/libopencv_core.so'
        exclude 'lib/x86_64/libopencv_imgproc.so'
    }
    configurations.all {
        /*resolutionStrategy {
            force 'com.android.support:design:23.4.0'
            force 'com.android.support:support-v4:23.4.0'
            force 'com.android.support:appcompat-v7:23.4.0'
        }*/
    }
}
repositories {
    mavenCentral()
    maven { url "https://jitpack.io" }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile ('com.squareup:fest-android:1.0.8') {
        exclude module: 'support-v4'
    }
    compile 'com.android.support:appcompat-v7:24.2.0'
    compile 'com.android.support:design:24.2.0'
    compile 'com.android.support:cardview-v7:24.2.0'
    compile 'com.android.support:recyclerview-v7:24.2.0'
    compile 'com.google.android.gms:play-services-gcm:9.0.0'
    compile 'com.google.android.gms:play-services-location:9.0.0'
    compile 'com.google.android.gms:play-services-maps:9.0.0'
    compile 'com.google.android.gms:play-services-plus:9.0.0'
    compile 'com.facebook.android:facebook-android-sdk:[4,5)'
    compile 'com.paypal.sdk:paypal-android-sdk:2.13.3'
    compile 'com.wdullaer:materialdatetimepicker:2.2.0'
    compile 'com.mukesh:permissions:1.0.3'
}

解决方案

Please check your declared dependencies. As discussed in the given documentation there are three different types of direct dependencies in the app/ module's build.gradle file.

Sample dependencies are as follows:

android {...}
...
dependencies {
    // The 'compile' configuration tells Gradle to add the dependency to the
    // compilation classpath and include it in the final package.

    // Dependency on the "mylibrary" module from this project
    compile project(":mylibrary")

    // Remote binary dependency
    compile 'com.android.support:appcompat-v7:25.0.1'

    // Local binary dependency
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

Furthermore, as answered by @Diego Giorgini in a related SO post,

The issue you are experiencing is due to an incompatibility between play-services / firebase sdk v9.0.0 and com.android.support:appcompat-v7 >= 24 (the version released with android-N sdk)

With this, you may want to try the suggested fix:

You should be able to fix it by targeting an earlier version of the support library. Like:

compile 'com.android.support:appcompat-v7:23.4.0'

You may want to also check the other suggestions in the following SO posts:

这篇关于java.lang.IllegalAccessError:方法'void android.support.v4.content的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆