问题
我有一个可编译并正常工作的Android项目。它由Gradle“管理”,并与Jenkins不断构建。我想用Sonar分析我的代码质量。
声纳分析是通过sonarRunner
Gradle任务进行的。问题是,Sonar仍然告诉我存在“ 0问题” ...(我可以确保您有错误...我可以自己添加一个,以确保...)。但是,它为我提供了其他信息,例如:代码行数,类数,注释和文档百分比,重复百分比,复杂性……这就像Android Lint没有运行一样。
我尝试了什么
lint
奇迹般有效... :
跑了变种arm的皮棉发布:找到153个问题
跑了变种armDebug的皮棉:找到153个问题
在x86Debug上运行皮棉:找到153个问题
变种x86上的皮棉发布:找到153个问题
我尝试了很多通过Internet和SO读取的内容:
我遇到了一些其他错误,例如“无法通过ClassLoader访问类'android / content / res / Resources'”。或其他内容,但我始终无法提供正确的报告)。
细节
项目结构
- myProjectName
| build
| libs
| src
| debug
| main
| assets
| java
| com.myPackage...
| jniLibs
| res
| AndroidManifest.xml
| release
| build.gradle
| gradle.properties
| settings.gradle
settings.gradle
空的
gradle.properties
空的
build.gradle(删除了无用的部分)
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.2'
}
}
/**********************************
* Plugins declarations
**********************************/
apply plugin: 'com.android.application'
apply plugin: "sonar-runner"
/**********************************
* Sonar Runner configuration
**********************************/
sonarRunner {
sonarProperties {
property "sonar.host.url", "http://pic.url/sonar"
property "sonar.jdbc.url", "jdbc:mysql://pic.url/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true"
property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"
property "sonar.jdbc.username", "*****"
property "sonar.jdbc.password", "*****"
property "sonar.language", "java"
property "sonar.profile", "MyCompany Android"
property "sonar.projectVersion", "1.0"
property "sonar.analysis.mode", "analysis"
properties["sonar.sources"] = android.sourceSets.main.java.srcDirs
properties["sonar.binaries"] = [file("build/intermediates/classes/x86/debug")]
}
}
/**********************************
* Android configuration
**********************************/
android {
compileSdkVersion 20
buildToolsVersion "20.0.0"
defaultConfig {
applicationId "com.myPackage..."
minSdkVersion 14
targetSdkVersion 16
versionCode 1
versionName "1.0"
}
lintOptions {
abortOnError false
}
}
当我尝试了很多事情时,我不知道下一步该怎么做。请在评论中询问您是否需要更多信息。
最后信息:
编辑
gradle sonarRunner
日志(提出评论):http : //pastebin.com/uJwqpAkY
(所有“ ***”都在这里隐藏公司名称,一切正常:))
看来AndroidLintSensor
您的分析未执行。(否则,您会Sensor AndroidLintSensor...
在日志中的某处看到该行。
这可能是由于多种原因:您的个人资料是否包含android规则?您的项目必须在基本目录或源目录中具有Java文件和android清单,才能触发传感器的执行(它将执行android lint)。
(如果您很好奇,这是触发传感器执行的代码部分:AndroidLintSensor.java)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句