我目前正在开发一个Android项目,我必须处理.java文件,可能会生成另一个.java文件,然后将其编译并打包到.apk文件中。
假设我有2个文件将由我的库FILE_A.java和FILE_B.java处理。
现在我需要通过反射访问我的库中的这些文件,例如用:
Class.forName("com.test.entities.FILE_A");
Class.forName("com.test.entities.FILE_B");
问题是我无法访问类文件,我认为是因为缺少类路径配置。目前我使用此任务来调用我的.jar文件:
task (mytask, type: org.gradle.api.tasks.JavaExec) {
classpath(files('libs/myjar.jar'))
main('com.test.TestMain')
}
preBuild.dependsOn mytask
我在网上找到了一些资源,但它们都不起作用。
我尝试将以下内容添加到类路径中:
sourceSets.main.runtimeClasspath
(主要未知)
android.sourceSets.main.runtimeClasspath
(runtimeClasspath未知)。
那么如何访问我的库中的类文件呢?
答案 0 :(得分:0)
试试这个
task execute(dependsOn: ['compileReleaseJavaWithJavac'], type:JavaExec) {
main = 'com.geniml.Main'
classpath(files('build/intermediates/classes/release',"${android.getSdkDirectory().getAbsolutePath() + '/platforms/' + android.compileSdkVersion + '/android.jar'}"))
}
android gralde是1.5。
关于构建目录,您可以使用rootProject.getBuildDir()
。但通常构建目录是一种惯例。静态的方式还可以。