Articles of gradle

Android中的Aviary SDK更新

所以我们已经在我们的项目中使用了Aviary SDK很长一段时间了,没有发生任何问题。 但是,当我们将Aviary版本更新到最新版本时,会发现一些奇怪的行为 – 当您首次在设备上安装新版本的Aviary应用程序时安装应用程序,该应用程序版本与旧版Aviary版本一起使用时,应用程序崩溃, FATAL EXCEPTION: IntentService[AviaryCdsService] java.lang.IllegalStateException: Missing required api key secret 第二次运行已安装的应用程序工作正常,所有function都正常工作。 如果设备以前没有安装应用程序,则不会发生崩溃,安装运行良好。 从com.aviary.android.feather.sdk:aviary-sdk:3.4.3.351到com.aviary.android.feather.sdk:aviary-sdk:3.6.3 有没有其他人有这样的问题,有没有办法避免这个崩溃?

Android Studio如何知道新的依赖版本?

Android Studio似乎知道何时有更新版本的依赖关系。 Maven仓库有所有的版本,所以它当然可以在那里检查,但是并不是所有的依赖项都这么做。 注意到它适用于com.google和com.android依赖项,但不适用于其他项目。 这是为什么? 可以configuration吗? 任何有关这方面的见解,赞赏。

在0.4.6升级后,Gradle Sync不会完成

在我将Android Studio升级到0.4.6之后,它似乎陷入了Gradle Sync的困境。 黄色的带子一直在“Gradle Project Synch in Progress”上面。 但是,没有任何迹象表明从底部的酒吧运行任何进程。 当我尝试运行我的应用程序时,出现在气球中的“Gradle Project Sync失败,请修复您的项目并再试一次”失败。 但是,没有更多的信息。 在升级到0.4.6之前,我正在成功完成这个项目。 而且由于0.4.5从0.4.5快速更新(在5天内),修复了一些与gradle相关的bug,我开始怀疑这是否是他们介绍的新东西。

在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 )。