[英]Debugging a gradle-based Java project on Android Studio?
我目前的項目由兩個模塊組成,一個是android,另一個可以作為獨立的桌面java使用。 我想自己運行第二個模塊,並且無需通過設備即可調試它。 我不想讓一個輔助IntelliJ安裝在一個或另一個之間進行交換。
在AS中有沒有辦法將調試器附加到java gradle任務?
apply plugin: "java"
sourceCompatibility = 1.6
sourceSets.main.java.srcDirs = [ "src/" ]
project.ext.mainClassName = "com.project.Desktop.Launcher"
project.ext.assetsDir = new File("../android/assets");
task run(dependsOn: classes, type: JavaExec) {
main = project.mainClassName
classpath = sourceSets.main.runtimeClasspath
standardInput = System.in
workingDir = project.assetsDir
ignoreExitValue = true
}
task dist(type: Jar) {
from files(sourceSets.main.output.classesDir)
from files(sourceSets.main.output.resourcesDir)
from {configurations.compile.collect {zipTree(it)}}
from files(project.assetsDir);
manifest {
attributes 'Main-Class': project.mainClassName
}
}
dist.dependsOn classes
eclipse {
project {
name = appName + "-desktop"
linkedResource name: 'assets', type: '2', location: 'PARENT-1-PROJECT_LOC/android/assets'
}
}
task afterEclipseImport(description: "Post processing after project generation", group: "IDE") {
doLast {
def classpath = new XmlParser().parse(file(".classpath"))
new Node(classpath, "classpathentry", [ kind: 'src', path: 'assets' ]);
def writer = new FileWriter(file(".classpath"))
def printer = new XmlNodePrinter(new PrintWriter(writer))
printer.setPreserveWhitespace(true)
printer.print(classpath)
}
}
http://www.gradle.org/docs/current/userguide/application_plugin.html
然后,您可以通過運行gradle run來運行該應用程序。 Gradle將負責構建應用程序類及其運行時依賴項,並使用正確的類路徑啟動應用程序。 您可以使用gradle run --debug-jvm以調試模式啟動應用程序(請參閱JavaExec.setDebug())。
添加到build.gradle
apply plugin:'application'
mainClassName = 'my.company.namespace.MainClass'
創建一個新的運行/調試Gradle配置
- 跑
- 編輯配置
- “+”(添加)
- 搖籃
或者你也可以單獨[運行]並復制任務。
- 對於任務使用
run --debug-jvm
- 將其重命名為[debug]
然后根據IntelliJ的指示附加調試器:
- 跑
- 編輯配置
- “+”(添加)
- 遠程
- 重命名為“附加調試器”
- (可選)在啟動之前,添加另一個配置並添加[debug]
現在您可以啟動[debug],然后啟動Attach Debugger,或者如果您按照步驟6,只需按一下Stop Debugger按鈕以通過Listening for transport dt_socket at address: 5005 message
,該Listening for transport dt_socket at address: 5005 message
可被視為入口點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.