本来大部分内容来源于互联网, 但网上相关方法众多,大部分都不适用于我的项目,一下方法为综合大部分方法后找到的可行方案。
首先用到android studio 的remoteDebug功能,创建一个remote
其次,开启gradle的debug模式,-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
网上查到的都是在terminal中执行
export GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
export是linux的命令,我是window环境,无法执行
之后经过尝试,发现在gradlew.bat中配置有同样效果
此方法能debug,但是断点处无法停止
之后再执行gradlew 命令就会出现我所期待的结果
再之后我们找到我们之前创建的remote选择debug按钮即可。
方法二:(注:此方法不要与方法一同时使用,否则编译会阻塞两次,需要运行两次debug)
同样在gradlew.bat文件中找到
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
在这之后加上
-Dorg.gradle.debug=true --no-daemon
前者是开启debug模式,后者是没有守护进程,之后运行的gradlew命令就可以有断点效果了。