Articles of gradle

在Android Gradle构build中,在构build期间更改strings.xml的内容

我希望能够在gradle构build期间从我们的CMS(或某个数据库)加载res / values / strings.xml中的用户可见string的值。 例如 <string name="button_label">OK, do it</string> 可以改成 <string name="button_label">OK, do it now!</string> … pipe他呢。 我们的想法是,新的价值将从我们的CMS读取build设时间,然后将被烧入APK文件。 (动机是自动化应用程序string的变化,以便应用程序中的任何文本将从现有的CMS中读取)。 什么是达到这个目的的最好方法? 是否可以在构build期间生成/修改资源文件(例如strings.xml),然后在Android构build系统中使用它们? 添加更多的要求: 该解决scheme需要支持“替代资源”,即重写其他语言的string。 ( http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources ) 该解决scheme应该能够覆盖原始(默认)strings.xml文件中的值。

如何释放与另一个Android库项目依赖关系的AAR?

这是我的发展项目结构: projectFolder | + – 应用 | + – MyLib中 | + – 库 | + – 力霸 MyLib依赖于LibA,我将MyLib打包为AAR并将其发布到Maven repo,但是当我将MyLib作为远程aar依赖项包含在另一个项目( TestProj )中时,出现构build错误(无法parsingLibA的依赖关系, LibA不包含在MyLib的发行版中),这是TestProj的 app文件夹中的build.gradel: dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile ('xxx.xxxxxx:yyyyy:1.0-SNAPSHOT@aar'){ transitive = true } } 这里是MyLib的build.gradle: dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile project(':Libraries:LibA') } 如何释放已经打包在AAR中的LibA的 MyLib ?

Android Gradle任务在构build之后复制文件

我试图从源码树中复制一些文件到Gradle最终生成apk文件的目录。 构build似乎很好,但我似乎没有看到复制工作。 我在模块build.gradle中添加了以下任务 task copySupportFiles(type: Copy){ from 'src/main/support' into 'build/outputs/apk' include '**/.dat' include '**/.txt' } assembleDebug {}.doLast{ tasks.copySupportFiles.execute() }

如何从gradle构build口味排除res文件夹?

我有一个要求从味道中删除特定的res文件夹。 sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] res.srcDirs = ['res'] aidl.srcDirs = ['src'] assets.srcDirs = ['assets'] } } productFlavors { flavor1 { sourceSets { flavor1 { resources { exclude 'res/drawable-mdpi/*' } } } } flavorDimensions "flavor" } 但仍然drawable-mdpi文件夹来到apk。 那么请有人指出我犯了什么错误。 感谢Vivek

在Android Studio 3.0中使用AndroidManifest.xml问题

我最近从Canary频道安装了Android Studio 3.0。 然而,加载我的旧项目,这将继续popup自动生成的AndroidManifest.xml文件,具体取决于构build版本: Error:(49) unknown element <uses-sdk> found 这也显示: Error:/home/computername/AndroidStudioProjects/applicationname/app/build/intermediates/manifests/full/release/AndroidManifest.xml:49 unknown element <uses-sdk> found 不用说,这在Android Studio 2.3中不是问题。 任何想法如何解决这个问题? 我已经阅读了一些类似的问题,但没有解决我的问题。 顺便说一句 – 如果我设置构build变体debugging或释放没关系,它说的是同样的事情。 此外,“R”类不起作用,如果我将鼠标hover在manifest xmlns:android="http://schemas.android.com/apk/res/android声明上,它会显示”URI未注册“。 再次,项目结构没有改变,我只升级到Android Studio 3.0。 谢谢! 以下是位于/src/main文件夹下的AndroidManifest.xml文件,该文件非常好。 问题是在/app/build/intermediates/manifests/full文件夹中生成的AndroidManifest.xml文件 – 这些是打破我的应用程序。 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.domain.appname">` <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".view.MainActivity" android:noHistory="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> […]

Gradle:如何在Android构build中包含来自依赖java项目的本地jar?

在我的Android应用程序中,当执行引用依赖.jar中代码的代码时,我得到一个java.lang.NoClassDefFoundError 。 我的项目包括一个Android模块以及一个纯Java库模块,这是jar依赖项的位置。 我使用gradle 1.10来构build项目。 这是我的项目布局: myProject – app (Android) – src – build.gradle – lib (java) – src – libs – local-dependency.jar – build.gradle – build.gradle – settings.gradle 主项目build.gradle为空,而主项目settings.gradle看起来像: include ':app', ':lib' Android应用程序build.gradle看起来像: buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.8.+' } } apply plugin: 'android' repositories { mavenCentral() } android { […]

Android Gradle插件multidex ZipException

我试图使用新的multidex选项,但我得到以下错误: Execution failed for task ':packageAll[Variant]TestClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry: android/support/multidex/BuildConfig.class 我只能在运行connectedAndroidTests任务时发现问题,而不是简单地构build项目( 构build )。

Androidunit testing不适用于Android库项目

我们正在尝试将新的Androidunit testing支持引入到我们的项目中。 对于库项目,在使用gradlew运行时无法findsrc / main / java类。 从Android Studio运行testing按预期工作。 在应用程序项目中使用gradle运行testing按预期工作。 在库项目中使用gradle运行testing失败。 我在github上创build了一个示例项目,在一个小项目中重现了这个问题。 使用gradle插件定义apply plugin: 'com.android.application'它工作正常,与插件定义apply plugin: 'com.android.library'发生错误。 错误是: home/user/path/AndroidJvmJunitTestSpike/common/src/test/java/squins/com/common/SomeClassTest.java:11: error: cannot find symbol assertEquals(2, new SomeClass().sum(1, 1)); ^ symbol: class SomeClass location: class SomeClassTest /home/user/path/AndroidJvmJunitTestSpike/common/src/test/java/squins/com/common/SomeClassTest.java:16: error: cannot find symbol new SomeClass().referenceDrawableFromR(); ^ symbol: class SomeClass location: class SomeClassTest 2 errors :common:compileDebugUnitTestJava FAILED 这是应该工作? 我错过了什么?

当两个库中的主题声明样式时,gradle错误

我试图编译一个android项目使用下面的build.gradle文件: buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.6.+' } } apply plugin: 'android' repositories { maven { url 'https://github.com/Goddchen/mvn-repo/raw/master/' } mavenCentral() } android { compileSdkVersion 18 buildToolsVersion "18.1.1" defaultConfig { minSdkVersion 8 targetSdkVersion 18 } } dependencies { compile 'com.android.support:appcompat-v7:18.0.+' compile 'com.android.support:support-v4:18.0.+' compile 'com.google.android.gms:play-services:3.2.+' compile 'com.facebook.android:facebook:3.5.+' compile 'com.android:volley:1.0' compile 'org.jraf:android-switch-backport:1.0' } 但是这个失败,出现以下错误: […]

Android Studio项目结构打开失败

这里是注销: module editors was not disposed java.lang.Throwable at com.intellij.openapi.diagnostic.Logger.error(Logger.java:113) 如果我重新打开我的项目,这个错误将消失,我可以再次打开文件结构。我想知道这是一个错误的AS或我的石installed安装错误? 这是一个会导致上述问题的问题: 'ComAndroidSupportAppcompatV71901.aar' already disposed:'ComAndroidSupportAppcompatV71901.aar' already disposed: com.intellij.openapi.util.TraceableDisposable$DisposalException: 'ComAndroidSupportAppcompatV71901.aar' already disposed: at com.intellij.openapi.util.TraceableDisposable.throwDisposalError(TraceableDisposable.java:44) Android Studio版本:0.4.3 build 133.988757