Fixed
Status Update
Comments
xa...@android.com <xa...@android.com> #2
[Comment deleted]
[Deleted User] <[Deleted User]> #3
[Comment deleted]
je...@google.com <je...@google.com>
hu...@gmail.com <hu...@gmail.com> #4
Also of note is the adb error when trying to install bad APK: INSTALL_FAILED_DEXOPT
cu...@gmail.com <cu...@gmail.com> #5
load dex files over 5Gb. -> load dex files over 5Mb.
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
Same here! Looking forward to a solution :)
Android Studio version: 0.8.12
buildToolsVersion 21.0.1
Gradle 1.11
Android Studio version: 0.8.12
buildToolsVersion 21.0.1
Gradle 1.11
je...@google.com <je...@google.com>
hm...@google.com <hm...@google.com> #7
There is already an option in dx allowing to force generation of smaller dex files:
--set-max-idx-number=<value>
Unfortunately changing the default is not a solution since the linearAlloc limit can be reached at very different levels depending on the classes hierarchy and other criteria.
In addition for most applications, moving to multidex will only help to workaround the linearalloc limit for the installation. But the application will still crash against the same limit at execution. The only working use case where I know multidex can help with linearalloc is when the apk does not contains one application but distinct pieces running in separate process.
--set-max-idx-number=<value>
Unfortunately changing the default is not a solution since the linearAlloc limit can be reached at very different levels depending on the classes hierarchy and other criteria.
In addition for most applications, moving to multidex will only help to workaround the linearalloc limit for the installation. But the application will still crash against the same limit at execution. The only working use case where I know multidex can help with linearalloc is when the apk does not contains one application but distinct pieces running in separate process.
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.