在过去的几天里,我正在努力使用aspectj来检测基于Salesforce的Android应用程序。由于我认为我的更改出了问题,我从https://github.com/forcedotcom/SalesforceMobileSDK-Android下载了纯粹的Salesforce示例,结果是一样的。
; TLDR;
用于检测的库使用aspectj,它确实正常工作,因为我之前没有任何问题地将它用于许多其他应用程序。我通常做的就是将以下几行添加到项目的build.gradle中:
buildcsript {
...
dependencies {
classpath 'com.uphyca.gradle:gradle-android-aspectj-plugin:0.9.14'
...
}
...
}
以下是app的build.gradle文件:
apply plugin: 'android-aspectj'
...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
....
}
....
不幸的是,这种方法不适用于示例Salesforce应用程序 - 构建过程成功但我的库不在最终输出中。问题的唯一指标是编译期间显示以下警告:
advice defined in xxx.OnCreate has not been applied [Xlint:adviceDidNotMatch]
在调查期间,我发现了这个https://stackoverflow.com/a/6267151条目。我尝试运行一个脚本,我使用那些额外的参数来使用我的库使用其中的仪器小apk:
-Xset:weaveJavaxPackages=true -Xset:weaveJavaPackages=true
它确实起作用并产生了一个检测应用程序。不幸的是,我无法使用我的原始应用程序,因为它是一个多索引,我需要使用Android Studio添加库。经过这么长时间的介绍,这是我实际问题的开始:
; TLDR;
是否可以在Android Studio中将weaver参数[weaveJavaxPackages和weaveJavaPackages]添加到aspectj插件?
我已经尝试手动将aop.xml文件添加到我的应用程序的src / main / resources / META-INF路径中,该路径建议我作为方面属性的默认路径 - 它没有工作。看起来文件被完全忽略了。
我也尝试将aspectj插件更改为https://github.com/HujiangTechnology/gradle_plugin_android_aspectjx,但我也没有找到如何在那里添加编织参数。
任何其他建议,建议和帮助都将受到高度关注。非常感谢,伙计们!