Я пытался использовать Javassist в своем Android-проекте, но это не сработало. Всякий раз, когда я получал CtClass из ClassPool по умолчанию, генерировалось NotFoundException. Я имею в виду, что Javassist успешно включен, и код в порядке, но когда я запускаю свою программу и пытаюсь получить CtClass, используя приведенный ниже код, возникло исключение NotFoundException.
ClassPool pool = ClassPool.getDefault();
pool.importPackage("com.nd.android");
try {
CtClass ctClass = pool.get("com.nd.android.aoptest.Test");
} catch (NotFoundException e) {
//NotFoundException always thrown
e.printStackTrace();
}
Мне сказали, что Javassist можно использовать только в проекте Java, есть ли другая версия для Android? Или может кто подскажет как бороться с этой проблемой?
Мой файл Gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.nd.android.aoptest"
minSdkVersion 15
targetSdkVersion 25
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.1', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
compile 'org.javassist:javassist:3.20.0-GA'
}