12

Android Studio で AspectJ を構成しようとしています
しかし、試行錯誤の末、うまくいきません!驚いたことに、Eclipse Kepler バージョンで動作させることができまし

た Android Studio で従った手順

  1. サンプルAndroidプロジェクトを作成しました
  2. ファイル>設定>AspectJプラグインセクションで検索AspectJのプラグイン
  3. build.gradle ファイルの構成を除いて、 Studio でこれ以上何もしないと仮定します
  4. compile 'org.aspectj:aspectjrt:1.8.1'build.gradle (Module:app) に追加
  5. 戻るボタンの押下検出Analytics_onBackPressed.aj 用に作成
  6. クリックイベント検出Analytics_OnClick.aj用に作成
  7. コンポーネントの oncreate イベント検出Analytics_onCreate.aj用に作成
  8. 上記の*.ajクラスが内部的に呼び出す必要な依存関係クラスを作成しました
  9. マニフェストに必要な権限を追加
  10. プロジェクトを実行してもイベントが検出されない (ボタンのクリック、oncreate、または戻るボタンのクリック)
  11. これらのリンクをたどったReferenceLinkOneReferenceLinkTwo、およびReferenceLinkThree

私の質問は、AspectJ を Android Studio で動作させるためにさらに必要なことは何ですか


Eclipse で手順を実行し、AspectJ を機能させました

  1. ダウンロードEclipseしたケプラーのバージョン
  2. http://download.eclipse.org/tools/ajdt/43/updateを検索した [Install New Software] オプションから
  3. インストール済みAspectJ Development Tools (Required)
  4. サンプル Android プロジェクトを作成しました
  5. 戻るボタンの押下検出Analytics_onBackPressed.aj 用に作成
  6. クリックイベント検出Analytics_OnClick.aj用に作成
  7. コンポーネントの oncreate イベント検出Analytics_onCreate.aj用に作成
  8. マニフェスト ファイルに必要なアクセス許可を追加
  9. プロジェクトを右クリックし、次の方法でプロジェクトを AspectJ に変換しました プロジェクトをAspectJに変換
  10. AspectJ ランタイム ライブラリを使用して構成された Java ビルド パス
  11. プロジェクトの実行中に、作成時にコンポーネントを検出し、戻るボタンを押すことができます

使用環境

Android スタジオ: 2.1.2

JRE: 1.8.0

Windows 7 エンタープライズ

どんな助けでも大歓迎です!


EDIT:1、出力から、まだAspectJが正しく構成されていません

このリンクに従って、*.ajファイルと対応する依存関係を含むEclipseからjarファイルを作成しました。AndroidManifest.xml作成中に除外され、作成jar fileされましたjar

Android Studio でプロジェクトを作成しました。この *.jar ファイルを libs ファイルに配置しました。(apps> libs). 以下に示すように、AspectJ waving を有効にしました AspectJ のプロパティを検索し、有効にしました プロジェクトを実行すると、 plugin にあるファイルに 入力したログが作成されます。残念ながら、これらのログは Android Studio のログには出力されません。

AspectJ ウェービングを有効化


ここに画像の説明を入力
*.aj

私がまだ結論付けているフォームは、このプロジェクトで AspectJ が有効になっていないか、構成エラーがあります

4

3 に答える 3

5

開示: 私は非公式の AspectJ weaver pluginの作成者です。

AspectJ ウィーバー プラグインのドキュメントに記載されているように、プラグインはファイルのコンパイルをサポートしていません。.aj

このプラグインを使用するには、次の 2 つのオプションがあります。

  • から注釈スタイルアスペクト.ajに切り替えます。
  • .ajたとえば、Maven/Gradle/Ant を使用して、IDE (IntelliJ コミュニティ/Android Studio) の外部でファイルをコンパイルし、 .jar. ドキュメントに従って、これ.jarを依存関係としてプロジェクトに含め、[アスペクトを検索... ] ボタンをクリックします。
于 2016-07-14T07:42:58.433 に答える
0

IntelliJ には AspectJ のツール サポートはなく、注釈スタイル AspectJ は Android Studio で動作します。アスペクト コードを Java コードとして扱うだけです。

詳細については 、Androidスタジオのこの問題のaspectjをお読みください - AJDTプラグインはどこにありますか

また、kotlinコードを織り込むことができるgradleプラグインaspectjxを使用でき、デモはこちら

于 2016-07-14T02:30:09.683 に答える