Articles of gradle

如何发布可以被其他人轻松导入的android库?

可以通过gradle轻松使用第三方库。 例如,以下内容允许我在我的应用程序中使用Retrofit。 dependencies { compile ‘com.squareup.retrofit:retrofit:1.9.0’ } 这个怎么用? 图书馆来自哪里? 一般来说,我如何发布图书馆以便其他人可以像这样导入它? 注意:这不是使用gradle / publish-jar-library-to-bintray-using-gradle将发布jar库复制到 bintray 。 这个问题是关于发布图书馆的一种特殊方式的问题。

Gradle Android – 覆盖标准任务

我正在尝试自定义我的Gradle构建的行为以使Android-Wear友好。 我在我的处理apk手动捆绑我的磨损apk(因为我没有设法自动完成)。 这意味着,如果我想构建一个新版本的处理apk,我必须手动构建我的磨损apk,复制/过去生成的磨损 – apk insinde我的res / raw处理项目然后构建新的处理apk。 我希望所有这些都能实现自动化。 所以,我需要做的是: 从cmd行启动应用程序:assembleRelease Gradle先做一次穿:assembleRelease 最后,Gradle从wear/output/apk/wear-apk.apk并将其复制到app/src/main/res/raw 然后Gradle可以继续做app:assembleRelease 我没有find如何从另一个任务启动任务(wear:assembleRelease)。 欢迎任何帮助!

Sonar Android Lint没有find匹配的问题

我遇到了以下麻烦:我已经使用“Android Lint”质量配置文件安装了SonarQube和Android插件。 当我使用“Android Lint”配置文件执行build.gradle脚本时,sonar-runner插件运行良好,但在SonarQube中我看不到find匹配的问题,只有零。 然而,当我包含另一个配置文件 – 而不是“Android Lint” – 我可以看到很多问题。 同样在我的android SDK中应用它自己的lint时我可以看到157个问题。 它可以是什么? 声纳 – 版本3.7.4; android插件 – 版本0.1

为Spoon Gradle Plugin设置applicationApk和instrumentationApk

我想设置.apk文件,用于使用SpoonGradlePlugin运行我的测试。 我可以从gradle文件以编程方式设置可用的属性: https://github.com/stanfy/spoon-gradle-plugin/blob/master/src/main/groovy/com/stanfy/spoon/gradle/SpoonExtension.groovy 但我的项目有各种风格和名称,我想测试它们。 通过当前设置,我得到: * What went wrong: A problem was found with the configuration of task ‘:app:spoonDebugAndroidTest’. > File ‘/Users/F1sherKK/Dev/MyApp-Android/app/build/outputs/apk/app-debug.apk’ specified for property ‘applicationApk’ does not exist. 我的构建名称是: app-debug-androidTest-unaligned.apk MyApp-debugA-1.2.3-201.apk MyApp-debugB-1.2.3-201.apk MyApp-debugC-1.2.3-201.apk 这就是为什么我想在gradle代码中设置我的.apk – 或者控制台。 到目前为止我发现Spoon Gradle插件中有可用的字段: https://github.com/stanfy/spoon-gradle-plugin/blob/master/src/main/groovy/com/stanfy/spoon/gradle/SpoonRunTask.groovy 名字: /** Instrumentation APK. */ @InputFile File instrumentationApk /** Application APK. */ @InputFile File applicationApk […]

Android – 该程序包与现有程序包的名称相同

我在Gradle上有这个默认配置。 defaultConfig { applicationId “com.my.application” minSdkVersion 16 targetSdkVersion 22 versionCode 190011 versionName “2.2.1” } 那些口味 productFlavors { dev { applicationIdSuffix “.dev” versionCode 333333 buildConfigField “String”, “ANVIL_BASE_URL”, “DEBUG_URL” resValue “string”, “app_name”, “app name dev” signingConfig signingConfigs.releasesign } prod { buildConfigField “String”, “ANVIL_BASE_URL”, “PROD_URL” resValue “string”, “app_name”, “app name” signingConfig signingConfigs.releasesign } } 我已经在Play商店发布了使用默认应用程序ID“com.my.application”的应用程序,但是当我安装了Play商店版本并想要安装“dev”风格的应用程序时,它会popup一条消息说明这一点: app name dev […]

uploadArchives构建调试和发布

我的gradle脚本中有一个上传任务: uploadArchives { repositories { mavenDeployer { repository(url: “${nexusUrl}/content/repositories/apps-releases”) { authentication(userName: nexusUsername, password: nexusPassword) } snapshotRepository(url: “${nexusUrl}/content/repositories/apps-snapshots”) { authentication(userName: nexusUsername, password: nexusPassword) } pom.groupId = “$defaultApplicationId” pom.artifactId = ‘MyApp’ pom.version = applicationVersionName() } } } 从teamcity运行这个: clean assembleDebug testDebugUnitTest crashlyticsUploadDistributionDebug uploadArchives 在构建调试版本之后,似乎uploadArchives也正在构建一个发行版本。 因此,当构建完成时,我将调试和发布apk作为生成的构造中的人工制品。 但如果我删除uploadArchives它只生成调试apk。 反正有没有阻止这个? 这不是什么大问题,但只建立我指定的版本会很好; 即uploadDebugArchives和uploadReleaseArchives会很好……

Android Studio:Gradle sync失败:Project:app声明了依赖项

我在Android Studio 2.3中工作,我想使用我在github上find的库( https://github.com/henrychuangtw/Android-ChatHead )并且没有Jar文件。 在settings.gradle中,我已经声明了库所在的目录,如下所示: include ‘:app’ include ‘:Android-ChatHead’ project(‘:Android-ChatHead’).projectDir=new File(‘/Users/lorand/AndroidStudioProjects/Doritest/android_chatHeads’) 我还将库添加到build.gradle依赖项中: dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) compile project(‘:Android-ChatHead’) androidTestCompile(‘com.android.support.test.espresso:espresso-core:2.2.2’, { exclude group: ‘com.android.support’, module: ‘support-annotations’ }) compile ‘com.android.support:appcompat-v7:25.1.1’ compile ‘com.android.support.constraint:constraint-layout:1.0.2’ testCompile ‘junit:junit:4.12′ } 在此之后,如果我同步,我会收到此错误: Gradle sync失败:Project:app声明从配置’compile’到配置’default’的依赖关系,它未在项目描述符中声明:Android-ChatHead。 有关详细信息,请参阅IDE日志(帮助|显示日志) 如果我将/ app添加到settings.gradle文件路径的末尾,则会收到以下错误: Error:Dependency Doritest:Android-ChatHead:unspecified on project core resolves to an APK archive which is […]

覆盖Flavors和Buildtypes之外的应用程序ID

我有一个应用程序有很多种类( A,B,C )和两种构建types( debug , release ) 在构建typesdebug我为应用程序ID添加了一个后缀,如下所示: debug { applicationIdSuffix ‘.debug’ } 这对于A和B味道很好,但是我不能将.debug附加到flavor C的应用程序ID。 我已经看过压缩变体,就像我对于versionCode但没有运气。 applicationVariants.all { variant -> def changedVersionCode = variant.versionCode variant. variant.outputs.each { output -> if (variant.buildType.name != “debug”) { output.setVersionCodeOverride(project.ext.versionCode) changedVersionCode = project.ext.versionCode } } changeApkFileName(variant,changedVersionCode) } 是否可以根据风格覆盖变体应用程序ID。 例如,我的计划是做这样的事情: variant.buildType.name.replace(‘.debug’,”)

Android aar已停止使用extractDebugAnnotations构建com / intellij / psi / PsiJavaFile android

我的构建最近停止了开源gradle / android项目的工作。 他们一直工作到今天(2016年10月10日)。 我在gradle和gradle android插件的多个版本(travis上)运行构建矩阵。 从本质上讲,它现在在gradle 3.0和3上失败,两者都使用gradle android 2.2.0插件。 使用不同android插件的其他版本都可以。 它只是2.2.0插件失败了。 困扰我的部分是错误信息 :hello-world-aar:preBuild UP-TO-DATE :hello-world-aar:preDebugBuild UP-TO-DATE :hello-world-aar:checkDebugManifest :hello-world-aar:preDebugAndroidTestBuild UP-TO-DATE :hello-world-aar:preDebugUnitTestBuild UP-TO-DATE :hello-world-aar:preReleaseBuild UP-TO-DATE :hello-world-aar:preReleaseUnitTestBuild UP-TO-DATE :hello-world-aar:prepareOrgOsmdroidOsmdroidAndroid541ReleaseLibrary :hello-world-aar:prepareDebugDependencies :hello-world-aar:compileDebugAidl :hello-world-aar:compileDebugNdk UP-TO-DATE :hello-world-aar:compileLint :hello-world-aar:copyDebugLint SKIPPED :hello-world-aar:compileDebugRenderscript :hello-world-aar:generateDebugBuildConfig :hello-world-aar:generateDebugResValues :hello-world-aar:generateDebugResources :hello-world-aar:mergeDebugResources :hello-world-aar:processDebugManifest :hello-world-aar:processDebugResources :hello-world-aar:generateDebugSources :hello-world-aar:incrementalDebugJavaCompilationSafeguard :hello-world-aar:compileDebugJavaWithJavac :hello-world-aar:compileDebugJavaWithJavac – is not incremental (eg outputs have changed, no previous […]

了解为什么gradle抱怨碰撞版本

我一直试图带回我的旧应用程序,我用eclipse写了一段时间。 我导入到android-studio,我抱怨碰撞版本: 所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。 发现版本28.0.0-alpha1,27.1.0。 示例包括com.android.support:animated-vector-drawable:28.0.0-alpha1和com.android.support:cardview-v7:27.1.0 起初,我按照这个问题的建议解决了这个问题,将gradle文件中的冲突包与新版本一起包含在内。 所以我的gradle文件最终结果如下: apply plugin: ‘com.android.application’ android { compileSdkVersion 27 buildToolsVersion “27.0.3” defaultConfig { applicationId “com.tomklino.imhere” minSdkVersion 16 targetSdkVersion 19 } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.txt’ } } dependencies { implementation ‘com.android.support:appcompat-v7:+’ implementation ‘com.android.support:cardview-v7:27.1.0’ implementation ‘com.android.support:customtabs:27.1.0’ implementation ‘com.android.support:support-media-compat:27.1.0’ implementation ‘com.android.support:support-v4:27.1.0’ implementation ‘com.loopj.android:android-async-http:1.4.9’ implementation “com.google.android.gms:play-services-gcm:11.8.0” implementation ‘com.facebook.android:facebook-android-sdk:[4,5)’ } […]