web-dev-qa-db-ja.com

java.lang.IllegalAccessError:メソッド 'void Android.support.v4.content

SDKでプレイサービスを更新しましたが、このエラーが発生しました。また、GCMトークンにアクセスできません。 SDKを更新する前に、私のプロジェクトは完全に機能します。

私は一日中無駄にしていますが、解決策は見つかりませんでした。 this を試しましたが、この依存関係でエラーを取得していますcom.google.Android.gms:play-services-plus:9.0.0

ここに私の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)

このコード行にエラーを表示しています

 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 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'
}
18
Arpit Patel

宣言された依存関係 を確認してください。与えられた documentation で説明したように、app /モジュールのbuild.gradleファイルには3種類の直接的な依存関係があります。

サンプルの依存関係は次のとおりです。

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'])
}

さらに、関連する SO post@ Diego Giorgini が回答したように、

発生している問題は、play-services / firebase sdk v9.0.0com.Android.support:appcompat-v7 >= 24(Android-N SDKでリリースされたバージョン)の非互換性によるものです

これにより、提案された修正を試してみることができます。

サポートライブラリの以前のバージョンを対象とすることで修正できるはずです。のような:

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

次のSOの投稿で他の提案を確認することもできます。

12
Teyam

FacebookのSDKがgoogleサポートライブラリの新しいバージョンに依存していることがわかりました。

Gradleコマンドで依存関係を確認できます

./gradlew app:dependencies

すべての依存ライブラリのバージョンが同じであることを確認してください。そうでない場合は、次を使用してその依存関係を除外できます

compile ('com.facebook.Android:facebook-Android-sdk:[4,5)'){
    exclude module: 'support-v4'
    exclude group: 'com.Android.support'
}

その後、プロジェクトをコンパイルした必要な依存関係を後で追加します。私の場合は

'com.Android.support:support-v4:23.1.0'をコンパイルします

4
Harish Rana