So konfigurieren Sie AspectJ in Android Studio

8

Ich versuche, AspectJ in Android Studio zu konfigurieren .
Aber nach allem Versuch und Irrtum funktioniert es nicht! Überraschenderweise kann ich es mit Eclipse Kepler Version arbeiten lassen

Die Schritte, die ich für Android Studio gefolgt

  1. Erstelltes Beispiel Android Projekt
  2. Datei & gt; Einstellungen & gt; Suche nach AspectJ im Plugin Abschnitt
  3. Angenommen, dass in Studio nichts mehr zu tun ist, außer der Konfiguration von build.gradle-Dateien
  4. compile 'org.aspectj:aspectjrt:1.8.1' zum build.gradle (Modul: app)
  5. hinzugefügt
  6. Erstellt Analytics_onBackPressed.aj für Zurück-Taste drücken Erkennung
  7. Erstellt Analytics_OnClick.aj für die Erkennung von Klickereignissen
  8. Erstellt Analytics_onCreate.aj für Komponenten oncreate event detection
  9. Erstellte notwendige Abhängigkeitsklassen, die die oben erwähnten *.aj -Klassen intern aufrufen
  10. Erforderliche Berechtigungen in Manifest hinzugefügt
  11. Beim Ausführen des Projekts werden keine Ereignisse erkannt (Klicken, Klicken oder Zurückklicken auf die Schaltfläche)
  12. Folgte diesen Links ReferenceLinkOne , ReferenceLinkTwo und ReferenceLinkThree
  

Meine Frage ist, was erforderlich ist, damit AspectJ mit Android Studio funktioniert


Schritte in Eclipse gefolgt und AspectJ funktioniert

  1. Heruntergeladene Eclipse Kepler-Version
  2. Durch die Option "Install New Software" wurde nach Ссылка gesucht
  3. Installierte AspectJ Development Tools (Required) .
  4. Beispiel Android-Projekt erstellt
  5. Erstellt Analytics_onBackPressed.aj für Zurück-Taste drücken Erkennung
  6. Erstellt Analytics_OnClick.aj für die Erkennung von Klickereignissen
  7. Erstellt Analytics_onCreate.aj für Komponenten oncreate event detection
  8. Erforderliche Berechtigungen in Manifest-Datei
  9. hinzugefügt
  10. Rechtsklicken Sie im Projekt und konvertieren Sie das Projekt nach AspectJ wie folgt
  11. Konfigurierter Java-Build-Pfad mit AspectJ-Laufzeitbibliothek
  12. Jetzt, während ich das Projekt ausführe, kann ich erkennen, dass Komponenten oncreate, back button press, erstellt werden

Verwendete Umgebung

  

Android Studio: 2.1.2

     

JRE: 1.8.0

     

Windows 7 Enterprise

Jede Hilfe wird sehr geschätzt!

EDIT: 1, Von der Ausgabe ist immer noch AspectJ nicht richtig konfiguriert

Gemäß diesem Link habe ich eine JAR-Datei aus Eclipse erstellt, einschließlich *.aj -Dateien und der entsprechenden Abhängigkeit. % Co_de% wurde ausgeschlossen, während AndroidManifest.xml erstellt und jar file

erstellt wurde

Erstelltes Projekt in Android Studio. Diese * .jar-Datei wurde in die libs-Datei gestellt. %Code%. Ich habe AspectJ aktiviert, wie unten gezeigt winkend



Jetzt wurden die Eigenschaften für AspectJ durchsucht und aktiviert

Wenn ich nun das Projekt ausführe, sollte ich Protokolle erstellen, die ich in jar files eingefügt habe, die im Plugin sind. Leider werden diese Protokolle nicht in Android Studio-Protokollen gedruckt.

Formular, das ich noch abschließe, AspectJ ist in diesem Projekt nicht aktiviert ODER es gibt einen Konfigurationsfehler

    
Stallion 11.07.2016, 07:53
quelle

3 Antworten

2

Disclosure: Ich bin Autor des inoffiziellen AspectJ weaver-Plugins .

Wie in der AspectJ weaver-Plugin-Dokumentation erwähnt, unterstützt das Plug-in das Kompilieren von% nicht. co_de% Dateien.

Um dieses Plugin zu verwenden, haben Sie zwei Möglichkeiten:

  • Wechseln Sie von .aj zu Anmerkungsstil .
  • Kompilieren Sie die .aj -Dateien außerhalb der IDE (IntelliJ Community / Android Studio), zum Beispiel mit Maven / Gradle / Ant, und packen Sie sie in ein .aj . Fügen Sie diese .jar als Abhängigkeit in Ihr Projekt ein und klicken Sie auf die Schaltfläche Nach Aspekten suchen ... , wie in der Dokumentation beschrieben.
Mattias Jiderhamn 14.07.2016 07:42
quelle
1

Ich hatte verschiedene Erfolge beim Versuch, AspectJ in Android Studio arbeiten zu lassen. Dieser Link hat mir geholfen, einen Teil des Weges dorthin zu gehen (nimmt Gradle Build-Setup für Ihr Projekt an). Ссылка

Unter Verwendung des benutzerdefinierten Codeblocks in der build.gradle -Datei konnte ich mithilfe von Anmerkungen in .java files Aspekte ermitteln, die in meinem Projekt korrekt kompiliert und gewebt wurden. Die gleiche Methode funktionierte jedoch nicht, wenn ich native Aspekte mit .aj files definierte. Ich hoffe es hilft.

    
Justin Hong 11.07.2016 18:57
quelle
0

IntelliJ hat keine Tooling-Unterstützung für AspectJ und der Annotation Style AspectJ kann mit Android Studio arbeiten. Behandeln Sie den Aspekt-Code einfach als Java-Code.

Für Details lesen Sie dieses Problem aspectj für Android Studio - wo ist das AJDT-Plugin

>

Sie können auch das Gradle-Plugin aspectjx verwenden, das den Kotlin-Code weben kann und Demo ist hier

    
firefly1126 14.07.2016 02:30
quelle