相关疑难解决方法(0)

更新到Android Build Tools 25.1.6 GCM/FCM后出现IncompatibleClassChangeError

自从我更新到Android SDK工具25.1.6和Android支持存储库32.0.0(今天早上)后,我收到以下错误,我没有更改我的代码中的任何内容,它仍在我的同事计算机上运行(Android SDK工具) 25.1.1 + Android支持存储库30.0.0).

java.lang.IncompatibleClassChangeError: The method 
     'java.io.File android.support.v4.content.ContextCompat.getNoBackupFilesDir(android.content.Context)' 
     was expected to be of type virtual but instead was found to be of type direct 
     (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar)

     at com.google.android.gms.iid.zzd.zzeb(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.xxxxxxx.utils.RegistrationIntentService.onHandleIntent(RegistrationIntentService.java:55)
     at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
     at android.os.Handler.dispatchMessage(Handler.java:102)
     at android.os.Looper.loop(Looper.java:145)
     at android.os.HandlerThread.run(HandlerThread.java:61)
Run Code Online (Sandbox Code Playgroud)

这是一段崩溃的代码:

InstanceID instanceID = InstanceID.getInstance(this); // <-- crash here
String instanceIDToken = instanceID.getToken(getString(R.string.google_app_id),
GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
Run Code Online (Sandbox Code Playgroud)

当我尝试从Google Cloud Messaging获取令牌时.

我正在使用分割的播放服务在Gradle中导入GCM:

 compile 'com.google.android.gms:play-services-analytics:9.0.0' 
 compile …
Run Code Online (Sandbox Code Playgroud)

android google-cloud-messaging android-gradle-plugin firebase-cloud-messaging

80
推荐指数
4
解决办法
5万
查看次数

java.lang.IllegalAccessError:Method'void android.support.v4.content

我在我的sdk中更新了playservice,我收到了这个错误.我无法访问GCM令牌.在更新sdk之前,我的项目完美运行.

我浪费了整整一天但没有找到任何解决方案.我尝试了这个, 但在这个依赖项中得到了错误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 …
Run Code Online (Sandbox Code Playgroud)

android google-play-services build.gradle android-gradle-plugin

18
推荐指数
1
解决办法
2万
查看次数

Android UrbanAirship在takeOff中崩溃

你好,我希望有人可以帮助我.

我正在开发一个使用UrbanAirship接收的应用程序PushNotifications.

我的问题是,从今天早上开始,当使用takeOff初始化UrbanAirship时,我的应用程序崩溃了.

我正在使用Android Studio v2.1.1(稳定版)并更新了我的Build和Platform-Tools以使用最新版本.崩溃发生后,我通过使用旧版本的这些工具和不同的Android Studio版本(2.0,1.3和1.5)来测试它是否是由新工具引起的.所以我相信不应该是问题.

这是我使用的代码和我的LogCat中的堆栈跟踪:

UAirship.takeOff(this, Config.getOptions(), mAirshipReadyCallback);
Run Code Online (Sandbox Code Playgroud)

getOptions返回以下内容:

public static AirshipConfigOptions getOptions() {
    return new AirshipConfigOptions.Builder()
        .setDevelopmentAppKey("Key")
        .setDevelopmentAppSecret("Secret")
        .setProductionAppKey("Key")
        .setProductionAppSecret("Secret")
        .setInProduction(!BuildConfig.DEBUG)
        .setGcmSender("Sender")
        .setProductionLogLevel(3).build();
}
Run Code Online (Sandbox Code Playgroud)

我的回调如下:

private UAirship.OnReadyCallback mAirshipReadyCallback = new UAirship.OnReadyCallback() {
        @Override
        public void onAirshipReady(UAirship uAirship) {
            DefaultNotificationFactory notificationFactory;
            notificationFactory = new DefaultNotificationFactory(getApplicationContext());

            notificationFactory.setSmallIconId(R.drawable.ic_push);
            notificationFactory.setLargeIcon(R.drawable.ic_launcher);
            try {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    notificationFactory.setColor(getColor(R.color.main_list_item_text_enabled));
                } else {
                    notificationFactory.setColor(getResources().getColor(R.color.main_list_item_text_enabled));
                }
            } catch (Resources.NotFoundException ex) {
                Timber.e(ex.getCause(), ex.getMessage());
                notificationFactory.setColor(Color.parseColor("0e457e"));
            }

            // Enable user notifications
            Timber.i("Enable Airship!"); …
Run Code Online (Sandbox Code Playgroud)

android urbanairship.com

3
推荐指数
1
解决办法
4744
查看次数