2016-08-31 1 views
3

Ich weiß nicht, seit wann, aber jetzt, wenn ich meine App zu einem Android-Gerät bereitstellen, sehe ich diese Protokolle in der logcat Konsole:DexOpt: illegale Methode Zugang mit Gson TypeToken

08-31 10:01:45.437 2157-2219/com.company.clap I/dalvikvm: DexOpt: illegal method access (call Lcom/google/gson/reflect/TypeToken;.<init> (Ljava/lang/reflect/Type;)V from Lcom/company/clapcore/service/ClapService$2;) 
08-31 10:01:45.437 2157-2219/com.company.clap I/dalvikvm: Could not find method com.google.gson.reflect.TypeToken.<init>, referenced from method com.company.clapcore.service.ClapService$2.<init> 
08-31 10:01:45.437 2157-2219/com.company.clap W/dalvikvm: VFY: unable to resolve direct method 15655: Lcom/google/gson/reflect/TypeToken;.<init> (Ljava/lang/reflect/Type;)V 
08-31 10:01:45.437 2157-2219/com.company.clap D/dalvikvm: VFY: replacing opcode 0x70 at 0x0033 
08-31 10:01:45.767 2157-2219/com.company.clap I/dalvikvm: DexOpt: illegal method access (call Lcom/google/gson/reflect/TypeToken;.<init> (Ljava/lang/reflect/Type;)V from Lcom/company/clapcore/service/ClapService$1;) 
08-31 10:01:45.767 2157-2219/com.company.clap I/dalvikvm: Could not find method com.google.gson.reflect.TypeToken.<init>, referenced from method com.company.clapcore.service.ClapService$1.<init> 
08-31 10:01:45.767 2157-2219/com.company.clap W/dalvikvm: VFY: unable to resolve direct method 15655: Lcom/google/gson/reflect/TypeToken;.<init> (Ljava/lang/reflect/Type;)V 
08-31 10:01:45.767 2157-2219/com.company.clap D/dalvikvm: VFY: replacing opcode 0x70 at 0x0033 

doesn Es‘ Es scheint, als ob irgendein Problem damit verbunden ist, meine App funktioniert immer noch, aber ich hasse es, Fehler in der Boot-Sequenz zu sehen, und ich befürchte, dass sie später einige Bugs verbergen könnte.

Die ClapService Klasse einfach importieren Sie die TypeToken Paket wie folgt aus:

import com.google.gson.reflect.TypeToken; 

Und es auf vielfältige Weise verwenden, wie diese:

private Object getPartialConfig(String settingName, TypeToken<?> typeToken) { 
... 
} 

oder etwas wie folgt aus:

private LocalizationConfig getLocalizationConfig() { 
     return (LocalizationConfig)getPartialConfig("localizationSettings", new TypeToken<LocalizationConfig>() {}); 
    } 

Wenn mir jemand diesen Fehler erklären und mir sagen kann, wie ich ihn los werde, würde ich wirklich ap beurteile es. Vielen Dank!

+2

Ich habe so ziemlich das gleiche Problem. Hast du eine Lösung gefunden? –

+0

Noch nicht. Habe immer noch dieselben Informationen in den Logs! –

Antwort

0

Versuchen Hinzufügen eines leeren Konstruktor ClapService

public ClapService() { 
} 
+0

Mit der neuesten Version von IntelliJ wurde der Fehler nicht mehr angezeigt ... Vielleicht war es ein Fehler auf ihrer Seite. Ich werde die Frage für den Moment offen lassen und prüfen, ob der Fehler zurückkommt. –

+0

@ Jean-FrançoisCôté Ich habe meine Antwort korrigiert, Sie sollten es versuchen – pantos27

+0

@ Jean-FrançoisCôté Auch das hat wahrscheinlich nichts mit der IntelliJ-Version zu tun, die Sie betreiben. Wahrscheinlicher mit der Version der gson-Bibliothek, die Sie in Ihrem Projekt verwendet haben – pantos27