Android Studio Gradle - JavaExec类路径配置 - Java反射 - 类访问

时间:2015-03-28 11:44:15

标签: android reflection gradle classpath

我目前正在开发一个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未知)。

那么如何访问我的库中的类文件呢?

1 个答案:

答案 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()。但通常构建目录是一种惯例。静态的方式还可以。