Articles of android gradle

如何配置gradle“脱机”工作(使用缓存的依赖项)

我有一个命令行apk生成器,它使用相同的源代码编译了很多APK,因此这些应用程序具有相同的依赖关系。 在gradle文档中我可以看到: Gradle项目需要网络连接才能下载依赖项。 我知道可以将gradle配置为脱机工作,而不是下载为其他apks下载的相同依赖项。 如何激活此离线模式?

Facebook字符串没有默认翻译

我今天遇到这个错误,试图运行附有Facebook SDK的应用程序。 Warning:string ‘com_facebook_smart_login_confirmation_continue_as_f1gender’ has no default translation. Warning:string ‘com_facebook_loginview_log_out_action_f1gender’ has no default translation. Warning:string ‘com_facebook_loginview_log_in_button_continue_f1gender’ has no default translation. Warning:string ‘com_facebook_smart_login_confirmation_continue_as_m2gender’ has no default translation. Warning:string ‘com_facebook_loginview_log_out_button_m2gender’ has no default translation. Warning:string ‘com_facebook_loginview_log_out_action_m2gender’ has no default translation. Warning:string ‘com_facebook_share_button_text_m2gender’ has no default translation. Warning:string ‘com_facebook_loginview_logged_in_as_f1gender’ has no default translation. Warning:string ‘com_facebook_send_button_text_m2gender’ has no default […]

android lint库模块中未使用的资源在app中使用

我的应用程序分为主应用程序和不同的库模块。 当我跑 ./gradlew lint 每个模块都是独立检查的,每个模块都会生成一个lint.xml文件。 在lint.xml文件中有大量未使用的资源警告,但是这些资源在主应用程序中使用。 如果使用资源,如何配置lint以在应用程序中全局检查? 谢谢 :)

如何为每个产品风格提供不同的启动器图标

我有一个由build.gradle文件定义的项目 buildscript { repositories { mavenCentral() } dependencies { classpath ‘com.android.tools.build:gradle:0.5.6’ } } apply plugin: ‘android’ dependencies { compile fileTree(dir: ‘libs’, include: ‘*.jar’) } android { compileSdkVersion 17 buildToolsVersion “17.0.0” sourceSets { main { manifest.srcFile ‘AndroidManifest.xml’ java.srcDirs = [‘src’] resources.srcDirs = [‘resources’] aidl.srcDirs = [‘src’] renderscript.srcDirs = [‘src’] res.srcDirs = [‘res’] assets.srcDirs = [‘assets’] } […]

如果找不到引用但不必要的源/资源,如何解决产品风味的构建错误?

我有一个项目,它有2个产品口味和自己的目录: 的build.gradle: android { … productFlavors { free { applicationId “com.sample.free” buildConfigField “boolean”, “free”, “true” } paid { applicationId “com.sample” buildConfigField “boolean”, “free”, “false” } } } 我有一个类(例如PaidOperationClass ),它只用于paid风格。 所以,我把那个类放在src/paid/java目录下。 我有另一个类(如CommonClass ),两种口味都使用它。 所以我把它放在src/main/java目录下: src/main/ –> has CommonClass src/free/ src/paid/ –> has PaidOperationClass 在CommonClass我有一个方法,例如: if(!BuildConfig.FREE) { PaidOperationClass.doSomeStuff(); } 所以PaidOperationClass被引用(有一个导入)但从未被免费构建使用。 如果我为paid风格构建应用程序,一切都很完美。 但是,如果我尝试构建它free味道,它失败,因为没有find引用但不必要的类。 如何在没有代码(类/方法)复制的情况下解决这个问题(比如将假的PaidOperationClass放在free味道下)? 是否有任何gradle选项在构建时忽略了这种构建错误? 编辑:我需要一个不需要代码复制的gradle解决方案。 基于注释的自定义脚本可能会在编译时删除不必要的产品风格代码。

无法find具有Gradle路径的模块。 链接到库 – 未指定

更新2这已在Android Studio 1.2 Beta 3中修复 更新:据报道,即将发布的Android Studio版本已修复此问题。 在Android Studio 1.2 Beta 2中,我在同步Gradle时开始收到以下警告。 Failed to set up dependencies Warning:Unable to find module with Gradle path ‘:Library1’. Linking to library ‘Library1-unspecified’ instead. Warning:Unable to find module with Gradle path ‘:Library2’. Linking to library ‘Library2-unspecified’ instead. 我注意到跳转到其中一个库模块中声明的声明会拉出Decompiler,而不是仅仅转到库模块中的实际源。 在我的Android Studio项目中,我有以下模块: – App – Library1 – Library2 模块:App build.gradle片段: dependencies […]

uses-sdk元素不能具有“tools:node”属性

我昨晚将Android Studio更新为0.9.0,buildToolsVersion更新为21.1.0并且gradle为0.14.0,之后我收到此错误 错误:任务’:app:processDebugManifest’的执行失败。 清单合并失败:uses-sdk元素不能具有“tools:node”属性 我花了整晚寻找解决方案,我发现了这个: 但不幸的是,又增加了一个错误! 错误:(10,5)使用-sdk元素不能具有“tools:node”属性 错误:(10,5)任务’:app:processDebugManifest’的执行失败。 清单合并失败:uses-sdk元素不能具有“tools:node”属性 我读过的另一个解决方案,不使用support-v4:21,对我来说我不使用它,因为我使用的是v13。

Android Studios RuntimeException:dex writer线程中的意外exception

我整个今天都遇到了这个奇怪的错误 – 任何人都知道这里出了什么问题? 据我所知,我一直在正确使用multidex库(以下是来自app.gradle文件): defaultConfig { applicationId “com.example.simon” minSdkVersion 14 targetSdkVersion 23 versionCode 1 versionName “1.0” /*Enabling multidex*/ multiDexEnabled true } dependencies { /* Enabling multidex*/ compile ‘com.android.support:multidex:1.0.1’ } 我的顶级gradle文件非常基本: buildscript { repositories { jcenter() } dependencies { classpath ‘com.android.tools.build:gradle:1.3.0’ classpath ‘com.google.gms:google-services:1.3.1’ // NOTE: Do not place your application dependencies here; they belong // in […]

使用APK Splits for Release但不使用Debug构建types

我已成功实施APK Splits,以便为不同的ABI生成单独的APK。 但是,为了提高效率(因为我在Debug中不需要非armeabi-v7a APK),我想限制Debug版本只生成armeabi-v7a APK。 如何才能做到这一点? 一个想法是这样的: abi { enable true reset() include ‘x86’, ‘armeabi-v7a’, ‘mips’ universalApk false } 也许有一些方法enable根据Buildtypes设置enable ?

将模块包含到项目后得到“不支持的类文件版本52.0”

在Android Studio中创建一个空项目并包含一个纯java模块,它自己编译并完美地工作后,我在该模块中的每个类上都会出现以下错误: Error:PARSE ERROR: Error:unsupported class file version 52.0 我尝试使用嵌入式JDK和我在系统上运行的JDK 8(1.8.0_91)运行项目,结果是一样的。 请注意,我没有将模块包含为.jar库,它是使用以下指令导入的源代码: include ‘:app’, ‘:my-module’ project(‘:my-module’).projectDir = new File(settingsDir, ‘../my-module-java’)