Articles of gradle

android studio java.lang.NoClassDefFoundError Gson

我做了一个很新的项目。 我在gson库中通过google添加到我的projects /libs目录并将其添加为库。 我还将它添加到我的build.gradle中 compile files(‘libs/gson-2.2.4.jar’) 所以现在一切看起来都不错,Android Studio没有任何错误,任何地方都没有红色下划线。 我可以建立它并试一试。 但后来我遇到了这个错误: java.lang.NoClassDefFoundError: com.google.gson.Gson 我可以在调试器中看到。 事情是我已经添加它并且android studio可以看到但是来构建它给了我所有这些types的问题。 我究竟做错了什么?

使用gradle构建Cordova项目时覆盖Java版本

我正在尝试使用gradle作为构建工具来构建Cordova项目。 在Cordova项目中,我有自己的插件,需要Java 1.7。 在Cordova附带的build.gradle中,java版本是1.6。 的build.gradle: android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_6 targetCompatibility JavaVersion.VERSION_1_6 } } build.gradle有一个很大的警告,说它是一个不应该编辑的生成文件,自定义gradle构建步骤的方法是 – 据我所知 – 创建build-extras.gradle文件。 我创建了一个build-extras.gradle文件,并尝试了以下内容: android { compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } } 但它似乎没有用。 我构建项目时仍然出错。 错误: > strings in switch are not supported in -source 1.6 > switch (action) { > ^ (use -source 7 or higher […]

如何确定Google Play服务的版本?

我正在从Eclipse迁移到Android Studio。 我有一个项目,我导入Android Studio使用Google Play服务,所以我按照我在此处find的文档: http : //developer.android.com/google/play-services/setup.html此文档说我需要编辑我的build.gradle文件。 他们给出了一个例子: apply plugin: ‘com.android.application’ … dependencies { compile ‘com.android.support:appcompat-v7:21.0.3’ compile ‘com.google.android.gms:play-services:6.5.87’ } 此外,文档还提到“每次更新Google Play服务时,请务必更新此版本号。”,我在上面的示例中假设为6.5.87 。 那么如何确定我使用Android SDK管理器安装的“版本”Google Play服务。 这是我的android sdk的屏幕截图: 所以我的Android SDK Manager告诉我我已经安装了“Revision”,那么我将什么放入build.gradle文件中? compile ‘com.google.android.gms:play-services:6.5.22’ … 或者可能 … compile ‘com.google.android.gms:play-services:22’ 任何帮助赞赏! 更新:感谢您的所有答案。 我能够find这样的版本: Leila001@win8 ~/Windows_Home/AppData/Local/Android/android-sdk/extras/google/google_play_services/libproject/google-play-services_lib/res/values $ cat version.xml 6587000

如何在测试执行期间从assets文件夹访问文件?

如何在unit testing执行期间从assets文件夹访问文件? 我的项目是使用Gradle构建的,我使用Robolectric来运行测试。 似乎gradle正在认识assets : 这就是我在努力阅读文件的方式: public String readFileFromAssets(String fileName) throws IOException { InputStream stream = getClass().getClassLoader().getResourceAsStream(“assets/” + fileName); Preconditions.checkNotNull(stream, “Stream is null”); BufferedReader reader = new BufferedReader(new InputStreamReader(stream, “UTF-8”)); return IOUtils.toString(reader); } 但是stream始终为null 。 我尝试了很多不同的方法,即使用不同的方法定义文件的路径。 非常感谢你提前。

Android Studio:如何创建第二个调试版本types

我想创建第二个构建types,它应该与现有的调试types完全一样。 目前我有两种构建types:调试和发布。 只需单击即可运行调试,并使用调试密钥库自动签名。 我通过Build -> Generate signed APK向导手动编译发布版本。 因此,为了克隆调试构建types,我首先在app build.graddle文件中添加了第二个名为“local”的构建types: buildTypes { … debug { debuggable true minifyEnabled false } local { debuggable true minifyEnabled false } } 然后我创建了app/src/local/res并添加了一些文件。 然后我执行gradle resync并在左侧选项卡中选择新的构建types: 最后,我点击了运行按钮,我希望它能正常工作。 这篇IntelliJ帮助文章说调试签名配置是默认的: 这意味着如果您未手动配置工件并在“运行/调试配置:Android应用程序”对话框中选择“部署默认APK”选项,则IntelliJ IDEA将使用证书中的预定义值生成 而是显示此对话框: 当我单击修复按钮时,它会打开整个应用程序模块的签名配置对话框。 但是,我不想签署这个apk用于发布,我需要用调试证书签名。 另外我注意到已经创建了一个新的assembleLocal gradle任务,但它生成了一个未对齐的apk。 在这个文件夹中,我可以看到常规调试apks在未对齐和最终版本中正确生成。 我怎样才能克隆调试版本types?

在gradle中添加对特定productFlavor和buildType的依赖性

我想知道如何在gradle中为特定的productFlavor和buildType添加依赖项。 例如,我有productFlavor free和build type release ,如何在assembleFreeRelease任务中添加依赖? 我尝试了很多变种,但都没有效果。 例如我试过: task(‘release’, dependsOn: assembleProductionRelease) { } // error: Could not find property ‘assembleProductionRelease’ on root project ‘app’. 要么: task(‘release’, dependsOn: ‘assembleProductionRelease’) { } 这里没有错误,但任务是针对每种风味和构建types执行的,非常令人困惑。

Gradle无法与“无法find可选库”同步

我不得不重新安装我的系统,今天当我尝试与gradle同步时,我在Android Studio中收到此错误: Warning: Unable to find optional library: org.apache.http.legacy 我的项目是: buildscript { repositories { mavenCentral() } dependencies { classpath ‘com.android.tools.build:gradle:1.3.0’ } } allprojects { repositories { mavenCentral() } } 我的模块是gradle: apply plugin: ‘android’ android { useLibrary ‘org.apache.http.legacy’ compileSdkVersion 23 buildToolsVersion ‘23.0.2’ defaultConfig { minSdkVersion 16 targetSdkVersion 23 } buildTypes { release { } } productFlavors […]

在Gradle 4.1中更改apk输出文件夹

我想更改APK output folder ,这是我以前做的: applicationVariants.all { variant -> variant.outputs.all { def filePath = “${rootProject.rootDir.absolutePath}/apks/${variant.name}” println(“My Path: ” + filePath) outputFileName = filePath } } 但是,它在Gradle 4.1 (Android studio 3.0预览版)中不起作用。 它不是像上面的路径那样生成文件夹,而是在旧的debug文件夹中生成上面的路径,如下图所示: 有人有解决方案吗? 谢谢。

错误“无法在Windows中使用Gradle分发获取’BasicIdeaProject’types的模型?

当我尝试通过单击build.gradle打开项目时,我看到以下消息: Could not fetch model of type ‘BasicIdeaProject’ using Gradle distribution ‘http://services.gradle.org/distributions/gradle-1.4-bin.zip’. The supplied javaHome seems to be invalid. I cannot find the java executable. Tried location: C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 12.1\jre\bin\java.exe 我认为这是因为IntelliJ在错误的文件夹中搜索jre,因为在我的IntelliJ目录中,我有这个结构: C:\Program Files (x86)\JetBrains\IntelliJ IDEA Community Edition 12.1\jre\jre\bin\java.exe 当然我可以将… \ jre \ _jre \ bin文件夹移动到… \ jre ,但如果我这样做,我会在尝试打开项目时看到另一条消息: Error: could not […]

Cordova / Ionic构建android Gradle错误:支持的最低Gradle版本是2.14.1。 当前版本是2.13

这是我要记录的上述错误的解决方案。 我发现了其他类似的post,但都没有描述这个错误如何与Cordova或Ionic相关联。 如果您不小心,Android Studio使用的Gradle版本与Cordova / cordova–android在其自动生成的应用程序代码中指定的Gradle版本可能不匹配。 如你所知,跑步 $ cordova platform add android (或$ ionic platform add android ,如果你正在构建一个Ionic应用程序)在-project / platforms / android上创建本机应用程序代码。 在该文件夹中,文件:/the-project/platforms/android/cordova/lib/builders/GradleBuilder.js导出一个variables,如下所示: var distributionUrl = process.env[‘CORDOVA_ANDROID_GRADLE_DISTRIBUTION_URL’] || ‘http\\://services.gradle.org/distributions/gradle-xy-all.zip’; 其中x和y取决于使用哪个版本的Cordova / cordova-android来构建本机应用程序代码。 当你跑步 $ cordova build android 在distributionUrl var中指定的Gradle版本是用于构建的版本。 现在来这里是棘手的部分。 当您将项目导入Android Studio时,您很可能会收到一条消息,强烈建议您将Gradle升级到更新版本,如下所示: 如果您这样做,Android Studio将下载新版本的Gradle并将其存储在本地并配置项目以使用新下载的本地Gradle分发,这是所选“使用默认等级包装”下面的无线电选项,我最终取消选择,因为这会导致错误。 这会导致问题,因为Android Studio和Cordova现在将尝试使用不同版本的Gradle构建应用程序,您将在Android Studio中获得构建错误,并且 $ cordova build android 在命令行中。 Cordova应用程序的解决方案是始终将Android Studio项目设置为“使用默认gradle包装器”并忽略要升级的诱人消息。 如果您确实想使用较新版本的Gradle,则可以随时更改上述文件中的distributionUrl […]