Я работаю в Android Studio и столкнулся с этой ошибкой при попытке создать подписанный APK для выпуска. Мне удалось создать и протестировать отладочную APK без проблем, но как только я захочу создать APK выпуска, процесс сборки будет работать в течение нескольких минут подряд, а затем окончательно завершится с помощью «Ошибка java.lang.OutOfMemoryError: GC превышение верхнего предела ". Я увеличил размеры кучи как для VM, так и для компилятора Android DEX, но проблема не устранена. Наконец, после многих часов и кружек кофе выяснилось, что проблема была в моем файле buildGradle на уровне приложения. У меня был параметр minifyEnabled для типа сборки релиза, установленного на «ложь», и, следовательно, работа с продуктами Proguard по коду, который не прошел через процесс сжатия кода (см. https://developer.android.com/studio/build/shrink-code.html ). Я изменил параметр «minifyEnabled» на «true», а сборка релиза была выполнена как сон:)
. Короче, мне пришлось изменить файл «build.gradle» на уровне приложения из: //. ..
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.sign_config_release
}
debug {
debuggable true
signingConfig signingConfigs.sign_config_debug
}
}
//...
-
//...
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.sign_config_release
}
debug {
debuggable true
signingConfig signingConfigs.sign_config_debug
}
}
//...
Нет... Просто запишите это и сделайте это инфиксным оператором - использование набора специальных символов. Обратная косая черта (\
) не находится в списке ниже, таким образом, он не будет работать инфиксным оператором. См. руководство:
инфикс-op: =
or || & && <OP >OP $OP = |OP &OP ^OP :: -OP +OP *OP /OP %OP **OP
префикс-op: =
!OP ?OP ~OP -OP +OP % %% & &&
Предполагая, что вам действительно нужна обычная разница наборов, а не странное вычитание упорядоченных, но несортированных мультимножеств, которое, по-видимому, обеспечивает Haskell, просто преобразуйте списки в наборы с помощью встроенного набора
, а затем с помощью встроенного оператора -
вычислить разность наборов:
set xs - set ys
Например:
> set [1..5] - set [2..4];;
val it : Set<int> = seq [1; 5]