Android(安卓)Studio配置AspectJ(使用jar包的方法)
16lz
2021-01-26
使用jar包的方法,步骤如下:
1.添加jar包,并编译;
2.添加mavent仓库;
3.在你module的build.gradle里添加代码。
整个module的build.gradle代码如下(根据自己的情况修改)。
apply plugin: 'com.android.application'buildscript { repositories { mavenCentral() } dependencies { classpath 'org.aspectj:aspectjtools:1.8.9' classpath 'org.aspectj:aspectjweaver:1.8.9' }}android { compileSdkVersion 26 buildToolsVersion '26.0.2' defaultConfig { applicationId "cm.richeninfo.com.astestaspect20180309" minSdkVersion 16 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }}dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:26.+' compile 'com.android.support.constraint:constraint-layout:1.0.2' testCompile 'junit:junit:4.12' compile files('libs/aspectjrt.jar')// compile files('libs/aspectj20160512.jar')}import org.aspectj.bridge.IMessageimport org.aspectj.bridge.MessageHandlerimport org.aspectj.tools.ajc.Mainfinal def log = project.loggerfinal def variants = project.android.applicationVariantsvariants.all { variant -> if (!variant.buildType.isDebuggable()) { log.debug("Skipping non-debuggable build type '${variant.buildType.name}'.") return; } JavaCompile javaCompile = variant.javaCompile javaCompile.doLast { String[] args = ["-showWeaveInfo", "-1.8", "-inpath", javaCompile.destinationDir.toString(), "-aspectpath", javaCompile.classpath.asPath, "-d", javaCompile.destinationDir.toString(), "-classpath", javaCompile.classpath.asPath, "-bootclasspath", project.android.bootClasspath.join(File.pathSeparator)] log.debug "ajc args: " + Arrays.toString(args) MessageHandler handler = new MessageHandler(true); new Main().run(args, handler); for (IMessage message : handler.getMessages(null, true)) { switch (message.getKind()) { case IMessage.ABORT: case IMessage.ERROR: case IMessage.FAIL: log.error message.message, message.thrown break; case IMessage.WARNING: log.warn message.message, message.thrown break; case IMessage.INFO: log.info message.message, message.thrown break; case IMessage.DEBUG: log.debug message.message, message.thrown break; } } }}
一、增加jar包并编译。
AspectJ的官方网站:http://www.eclipse.org/aspectj/downloads.php 。
1.在libs中增加jar包;
2.在module的build.gradle中,在dependencies下增加:compile files('libs/aspectjrt.jar')。
二、添加mavent仓库
在module的build.gradle中增加下面代码。buildscript { repositories { mavenCentral() } dependencies { classpath 'org.aspectj:aspectjtools:1.8.9' classpath 'org.aspectj:aspectjweaver:1.8.9' }}
三、添加代码
module的build.gradle里添加下面代码。
buildscript { repositories { mavenCentral() } dependencies { classpath 'org.aspectj:aspectjtools:1.8.9' classpath 'org.aspectj:aspectjweaver:1.8.9' }}
更多相关文章
- Android(安卓)Architecture Components 部分源码代码分析
- eclipse下开发android应用的几个常用插件
- GridView添加网格线
- Android(安卓)热补丁动态修复框架小结
- android红米等关于读取本地文件夹图片获取路径的问题的解决
- Android实用代码七段(五)
- Android封装BaseActivity
- android studio使用jni调用opencv库实现图片转换【详细实例】(二)
- Android-常用代码-36片段