簡體   English   中英

在Android Studio上調試基於gradle的Java項目?

[英]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配置

  1. 編輯配置
  2. “+”(添加)
  3. 搖籃

或者你也可以單獨[運行]並復制任務。

  1. 對於任務使用run --debug-jvm
  2. 將其重命名為[debug]

然后根據IntelliJ的指示附加調試器:

  1. 編輯配置
  2. “+”(添加)
  3. 遠程
  4. 重命名為“附加調試器”
  5. (可選)在啟動之前,添加另一個配置並添加[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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM