Fixed
Status Update
Comments
xa...@android.com <xa...@android.com> #2
Thank you for this feedback. The team may reach out for more information on triaging or reproducing this issue.
[Deleted User] <[Deleted User]> #3
I have tried the example project you've provided, it does not reproduce.
Could you please try running with -Pandroid.useDexArchive=false? This disables the new dexing pipeline, and fallbacks to the old one.
Could you please try running with -Pandroid.useDexArchive=false? This disables the new dexing pipeline, and fallbacks to the old one.
je...@google.com <je...@google.com>
hu...@gmail.com <hu...@gmail.com> #4
@Mario Did you get a chance to try the build with -Pandroid.useDexArchive=false flag?
cu...@gmail.com <cu...@gmail.com> #5
I'm the college of @Mario and I make it work without issues and without using -Pandroid.useDexArchive=false by using alpha6 and removing retrolambda
ch...@google.com <ch...@google.com>
jo...@google.com <jo...@google.com>
xa...@google.com <xa...@google.com>
hu...@google.com <hu...@google.com> #6
Sorry my comment from Apr 21, 2017 12:41PM was wrong.
With -Pandroid.useDexArchive=false it looks like this
:app:transformClassesWithDesugarForNonpayItalyCompatDebugAndroidTest
:app:transformClassesWithPreDexForNonpayItalyCompatDebugAndroidTest
Dex: warning: Ignoring InnerClasses attribute for an anonymous inner class
(org.ccil.cowan.tagsoup.Parser$1) that doesn't come with an
associated EnclosingMethod attribute. This class was probably produced by a
compiler that did not target the modern .class file format. The recommended
solution is to recompile the class from source, using an up-to-date compiler
and without specifying any "-target" type options. The consequence of ignoring
this warning is that reflective operations on this class will incorrectly
indicate that it is *not* an inner class.
:app:transformDexWithDexForNonpayItalyCompatDebugAndroidTest FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:transformDexWithDexForNonpayItalyCompatDebugAndroidTest'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
With -Pandroid.useDexArchive=false it looks like this
:app:transformClassesWithDesugarForNonpayItalyCompatDebugAndroidTest
:app:transformClassesWithPreDexForNonpayItalyCompatDebugAndroidTest
Dex: warning: Ignoring InnerClasses attribute for an anonymous inner class
(org.ccil.cowan.tagsoup.Parser$1) that doesn't come with an
associated EnclosingMethod attribute. This class was probably produced by a
compiler that did not target the modern .class file format. The recommended
solution is to recompile the class from source, using an up-to-date compiler
and without specifying any "-target" type options. The consequence of ignoring
this warning is that reflective operations on this class will incorrectly
indicate that it is *not* an inner class.
:app:transformDexWithDexForNonpayItalyCompatDebugAndroidTest FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:transformDexWithDexForNonpayItalyCompatDebugAndroidTest'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
je...@google.com <je...@google.com>
hm...@google.com <hm...@google.com> #7
We updated our example repo https://github.com/originx/Gradle_troubles_android_enteprise where you can see the issue.
Just run
./gradlew spoonGermanyDebugAndroidTest
or
./gradlew spoonGermanyDebugAndroidTest -Pandroid.useDexArchive=false
and you will see the issue
Just run
./gradlew spoonGermanyDebugAndroidTest
or
./gradlew spoonGermanyDebugAndroidTest -Pandroid.useDexArchive=false
and you will see the issue
Description
Android gradle plugin version: 0.13.1
OS: MacOS
STEPS TO REPRODUCE:
1. Add a string to res/values/strings.xml
e.g. <string name="app_name">SimpleTest</string>
2. Add a product flavor which overrides this string:
productFlavors {
INT {
resValue "string", "app_name", "SimpleTest INT"
}
}
3. Execute:
gradle assembleINTDebug
EXPECTED RESULTS:
Build succeeds and the app is named "SimpleTest INT"
OBSERVED RESULTS:
Build fails with error:
:SimpleTest:mergeINTDebugResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':SimpleTest:mergeINTDebugResources'.
> /Users/xyz/AndroidStudioProjects/SimpleTest/SimpleTest/build/generated/res/generated/INT/debug/values/generated.xml: Error: Duplicate resources: /Users/xyz/AndroidStudioProjects/SimpleTest/SimpleTest/build/generated/res/generated/INT/debug/values/generated.xml:string/app_name, /Users/xyz/AndroidStudioProjects/SimpleTest/SimpleTest/src/main/res/values/strings.xml:string/app_name
ADDITIONAL INFORMATION:
When I add a resource file via a sourceSet for this build flavor instead of using resValue, I can successfully override the app_name.
I think setting a resource with resValue should behave the same as when using a sourceSet.