Articles of gradle

java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:无法在Android Studio 3.0中合并dex

这是我的gradle文件: apply plugin: ‘com.android.application’ android { compileSdkVersion 26 buildToolsVersion ‘27.0.0’ useLibrary ‘org.apache.http.legacy’ defaultConfig { multiDexEnabled true applicationId ‘com.example.test’ minSdkVersion 16 targetSdkVersion 26 versionCode 1 versionName “1.0” testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner” } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } productFlavors { } dexOptions { incremental true } } dependencies { compile ‘com.google.android.gms:play-services:10.0.1’ compile ‘com.android.support:appcompat-v7:26.+’ compile ‘com.android.support:multidex:1.0.1’ compile ‘com.android.support.constraint:constraint-layout:1.0.0-alpha7’ […]

错误:找不到:com.android.support:support-v4:20.0.+

我在Android Studio中导入了一个项目。 我在项目中需要v4和v7库。 这就是我的build.gradle的样子 的build.gradle apply plugin: ‘android-library’ android { compileSdkVersion 19 buildToolsVersion ’20’ defaultConfig { applicationId ‘com.example.sdk’ minSdkVersion 9 targetSdkVersion 19 versionCode 1 versionName ‘1.0’ } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } productFlavors { } } dependencies { compile fileTree(dir: ‘libs’, include: [‘*.jar’]) compile ‘com.android.support:appcompat-v7:20.0.+’ compile ‘com.android.support:support-v4:20.0.+’ } 当我与gradle同步时,它总是会给出错误消息 […]

如何在Android Studio模块中添加风味?

我有一套使用相同模块的项目,其中包含几乎所有实际代码。 该项目设置如下: project/ – app/ – build.gradle – libraries/ – module/ – build.gradle – build.gradle – settings.gradle 依赖关系都设置正确,我可以很好地构建和运行应用程序,但是我只能为项目添加风味,这不是理想的解决方案。 settings.gradle包含以下内容: include ‘:app’, ‘:libraries:module’ 在app目录的build.gradle文件中,我添加了以下块: productFlavors { alpha production } 使用gradle 0.11,这将同步并创建assembleAlphaDebug , assembleAlphaRelease , assembleProductionDebug , assembleProductionRelease任务。 当我尝试在模块中执行此操作时,我收到错误: 找不到与给定名称匹配的资源(在’theme’处,值为’@ style / MyCustomTheme’) 在构建的app/src/main/AndroidManifest.xml 。 由于某种原因,该模块尚未构建,因此自定义主题无效。 我究竟做错了什么?

:app:dexDebug ExecException以非零退出值2结束

任何人都可以帮我解决以下错误。 当我清理项目时,它不会显示任何错误,但每次我尝试运行时都会收到此消息。 错误:任务’:app:dexDebug’的执行失败。 com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程’命令’C:\ Program Files \ Java \ jdk1.8.0_45 \ bin \ java.exe”以非完成零退出值2 应用程序运行没有错误,但随着我的系统崩溃并重新启动Android工作室我几乎没有Android API 22的更新。更新后,应用程序继续给我这个错误消息。 我下载了JDK 8并尝试运行但没有工作。 之后我在这个堆叠帖后降级到JDK 7,但仍然没有修复它。 是否可以使用Java 8进行Android开发? 我看过很多类似的问题,但没有一个适合我。 在堆栈上发现了一些类似的问题 为什么java.exe在android studio中以值1退出 错误:任务’:app:dexDebug’的执行失败。 >命令以非零退出值2结束 Java以非零退出值2完成 – Android Gradle java.exe以非零退出值2结束 进程’命令’C:\ Program Files \ Java \ jdk1.8.0_31 \ bin \ java.exe”以非零退出值2结束 我已经查看了gradle中的依赖项,以查看是否存在任何冲突但未find任何冲突。 我甚至试图将代码复制到一个新项目并运行它但仍然没有成功。 任何遇到同样问题并解决它的人请帮助我。

Graverse buildConfigField boolean的默认值用于各种风格

我的应用程序中有很多种风格,我想为它们的子集设置一个布尔buildConfigField。 有没有办法避免必须将字段添加到每种风味? 理想情况下,我的build.gradle将如下所示: productFlavors { flavor1 { } …. flavor4 { buildConfigField “boolean”, “DISABLE_SOMETHING”, “true” } flavor5 { buildConfigField “boolean”, “DISABLE_SOMETHING”, “true” } …. flavor8 { } } 所以在我的应用程序中,我可以去 if (BuildConfig.DISABLE_SOMETHING) { //disable stuff } 但是,当我尝试使用,例如, flavor1构建时,编译失败,因为它无法find该字段。 我不想记得将它添加到我创建的每个新口味中。 这有什么办法吗?

如何使用Android Studio运行unit testing

我正在使用Jake的Androidunit testing插件进行gradle: https : //github.com/JakeWharton/gradle-android-test-plugin 我的build.gradle看起来像这样: dependencies { // analytics compile(‘com.crittercism:crittercism-android:3.0.11’) // retrofit compile(‘com.squareup.retrofit:retrofit:1.2.2’) compile(‘com.squareup.okhttp:okhttp:1.2.1’) // dagger compile(‘com.squareup.dagger:dagger:1.1.0’) compile(‘com.squareup.dagger:dagger-compiler:1.1.0’) // compatibility compile(‘android.compatibility:android-support:v4-r13’) compile(‘com.actionbarsherlock:actionbarsherlock:4.4.0@aar’) // Picasso compile(‘com.squareup.picasso:picasso:2.1.1’) // Otto compile(‘com.squareup:otto:1.3.4’) // Tests testCompile ‘junit:junit:4.10’ testCompile ‘org.robolectric:robolectric:2.2’ testCompile ‘org.powermock:powermock-api-mockito:1.5.1’ testCompile ‘org.easytesting:fest-assert-core:2.0M10’ } 不幸的是,我无法运行所有或特定的unit testing表单Android Studio。 我收到错误: Exception in thread “main” java.lang.NoClassDefFoundError: junit/textui/ResultPrinter at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:171) […]

多个dex文件定义 / BuildConfig,找不到原因:

我正在使用新的gradle构建系统,我面临以下问题: UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Lcom/kibo/mobi/BuildConfig; at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:594) at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:552) at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:533) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:170) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) at com.android.dx.command.dexer.Main.run(Main.java:230) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103) 打印依赖项我看不到任何东西,这里是: firstDebugCompile – ## Internal use, do not manually configure ## \— KiboGradle:KiboSDK:unspecified +— KiboGradle:TextInputAPI:unspecified +— KiboGradle:VoiceImeUtils:unspecified +— com.google.android.gms:play-services:5.0.77 | \— com.android.support:support-v4:19.1.0 +— com.squareup.picasso:picasso:2.3.2 +— […]

Crashlytics(Fabric)将应用程序变体(构建types,产品风格)分开组织

这是一个自我回答的问题,可以分享我的知识。 我有一个具有多种产品风格的项目,我希望使用不同的组织为每种产品风格整合Fabric。 我尝试使用Android Studio Fabric插件集成Fabric。 它补充道 进入main源集的AndroidManifest.xml 。 我决定在应用程序变体特定的源集中重写此条目: 然后我发现Fabric Gradle插件在构建期间生成了带有fabric api secret(AKA build secret)的crashlytics.properties文件,我应该将此文件包含在源代码控制中。 但是每次构建特定的应用程序变体时都会覆盖此文件,因为api secret对于每个应用程序都是唯一的。 如何针对每种应用程序变体使用单独的组织集成Fabric?

当内部类依赖于R.java时,Gradle在Android Javadocs中排除R.java

我正在为API构建JavaDoc,其中API中的类依赖于R.java。 我想构建Javadoc w / o符号错误引用丢失的R.java文件,因为即使我设置failOnError false ,构建成功但我们的Jenkins作业会在成功构建中发生错误时将构建报告为Failed。 下面的任务将成功创建javadoc,但会在构建期间报告与未findR.java有关的错误。 android.libraryVariants.all { variant -> def name = variant.name.capitalize() task(“generate${name}Doclava”, type: Javadoc) { description “Generates Javadoc for $variant.name.” source = variant.javaCompile.source title = null // use android.bootClasspath instead of building our own path to android jar //ext.androidJar = “${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar” // hardcoded path to generated R.java file to avoid […]

清洁,gradlew清洁之间的区别

从Android Studio Project的终端发出以下语句之间的区别是什么: Android_Studio_Project_Path:./ gradlew clean Android_Studio_Project_Path:./ gradlew clean assembleDebug Android_Studio_Project_Path:./ gradlew clean:assembleDebug 和普通的Android Studio – > Build – > Clean。 内部流程会有什么不同。