我目前正在处理一个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是未知的)。那么如何访问我的库中的类文件?
最佳答案
试试这个
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 gradle是1.5。至于构建目录,您可以使用
rootProject.getBuildDir()
。但是通常build dir是一个约定。静态方式是可以的。
关于android - Android Studio Gradle-JavaExec类路径配置-Java反射-类访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29316754/