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

标签 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是未知的)。

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

最佳答案

试试这个

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/

相关文章:

java - 我想限制我的网络服务网址只能从任何浏览器访问,只能从 Android 应用程序访问

android - 通过 USB 从一部安卓手机给另一部手机充电

c# - 通过反射访问 TextSegment 的值

c# - 如何在 .net 中使用反射获取对象名称?

eclipse - Eclipse Gradle IDE即将从v3.6.4升级到v3.7.0失败,缺少相关性

android - 在我的手机上更改 Android API 级别

android - 无法获取 Calendar.WEEK_OF_YEAR

python - 通过自省(introspection)打印 ctypes "Structure"的所有字段

java - 如果没有 Maven 或 Ivy,Gradle 在哪里管理依赖关系?

java - 生成 Jacoco 报告后运行 "Coverage information was not collected."时为 'gradle sonarRunner'