Uruchamiam „cordova build android” - nie można znaleźć atrybutu android: fontVariationSettings i android: ttcIndex

103

Kiedy uruchamiam cordova build android --buildConfig xxxx --release, pojawia się następujący błąd:

ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:fontVariationSettings
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:ttcIndex

Dziwne jest to, że do kompilacji używam dwóch maszyn macOS i otrzymuję ten błąd tylko na jednej z nich dla tego samego kodu.

Oto wynik ./gradlew cdvPrintPropsuzyskany na dwóch komputerach:

:cdvPrintProps
cdvCompileSdkVersion=26
cdvBuildToolsVersion=27.0.3
cdvVersionCode=null
cdvMinSdkVersion=21
cdvBuildMultipleApks=true
cdvReleaseSigningPropertiesFile=release-signing.properties
cdvDebugSigningPropertiesFile=null
cdvBuildArch=null
computedVersionCode=152045989
computedArmv7VersionCode=1520459892
computedX86VersionCode=1520459894

Poniżej znajduje się lista użytych wtyczek:

$ cordova plugins list
cordova-custom-config 5.0.2 "cordova-custom-config"
cordova-fabric-plugin 1.1.10 "cordova-fabric-plugin"
cordova-open-native-settings 1.5.0 "Native settings"
cordova-plugin-app-event 1.2.1 "Application Events"
cordova-plugin-app-version 0.1.9 "AppVersion"
cordova-plugin-camera 2.4.1 "Camera"
cordova-plugin-compat 1.2.0 "Compat"
cordova-plugin-console 1.1.0 "Console"
cordova-plugin-crosswalk-webview 2.4.0 "Crosswalk WebView Engine"
cordova-plugin-datepicker 0.9.2 "DatePicker"
cordova-plugin-device 2.0.1 "Device"
cordova-plugin-email 1.2.7 "EmailComposer"
cordova-plugin-file 4.3.3 "File"
cordova-plugin-file-transfer 1.6.3 "File Transfer"
cordova-plugin-inappbrowser 1.7.2 "InAppBrowser"
cordova-plugin-network-information 1.3.4 "Network Information"
cordova-plugin-secure-storage 2.6.8 "SecureStorage"
cordova-plugin-splashscreen 4.1.0 "Splashscreen"
cordova-plugin-statusbar 2.4.1 "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova.plugins.diagnostic 3.9.2 "Diagnostic"
de.appplant.cordova.plugin.local-notification 0.8.5 "LocalNotification"
ionic-plugin-keyboard 2.2.1 "Keyboard"

Jak mogę rozwiązać ten problem?

Stéphane Padovani
źródło
Ten problem również mi się przytrafił przez cały dzień. Zawęziłem to do wtyczki, której używam. Jednak potrzebuję tej wtyczki do moich aplikacji. Jakiej wtyczki używasz?
Chris R
@ChrisRitten Cześć, powyższy post uzupełniłem o listę wtyczek. Pozdrowienia.
Stéphane Padovani
1
żadna z odpowiedzi nie pomaga, walcząc z tym od jednego dnia.
khusrav
Jeśli to pomoże, freakyjolly.com/…
Code Spy

Odpowiedzi:

106

Po prostu umieść śledzenie w build-extras.gradle

configurations.all {
    resolutionStrategy {
        force 'com.android.support:support-v4:27.1.0'
    }
}
helmson helmson
źródło
Dzięki! To rozsądne podejście do przypinania do wersji przez Cordovę.
Hozuki
10
Trzymam folder moich platform poza kontrolą źródła, więc aby to osiągnąć, utworzyłem build-extras.gradlew moim projekcie root dodany kod, aby skopiować go na hooks\after_platform_add gist.github.com/charlesbedrosian/ ...
cbedrosian
8
nie mam takiego pliku: „build-extras.gradle”
Joe Sleiman
3
Dla innych użytkowników phonegap-build. Odpowiedź brzmi: cordova-android-support-gradle-release forums.adobe.com/thread/2462835
catu
7
Oprócz komentarza @ StéphanePadovani, zwróć uwagę, że powinien on zostać utworzony w folderze / platform / android / app z Cordova Android 7.0.0
Will Kru
83

Google wydało nową wersję 28.0.0-alfa1 z com.android.support:support-v4 która jest dodanie 2 nowych atrybutów (Android: fontVariationSettings i Android: ttcIndex). Niektóre wtyczki używają najnowszych bibliotek obsługujących Androida, co powoduje niepożądane niezgodności.

Opcja 1: Zainstaluj wtyczkę cordova-android-support-gradle-release .

Dobrze udokumentowana wtyczka, która „dopasowuje różne wersje bibliotek Android Support określonych przez inne wtyczki do określonej wersji”. Testowane bez destrukcyjnego zachowania.

cordova plugin add cordova-android-support-gradle-release --fetch

Przeczytaj dokumentację, aby uzyskać pełny zestaw opcji: Readme

Opcja 2 : Dodaj następny fragment kodu w build.gradle pod platformami / android

/** 
IMPORTANT - Manually added
Problem: 8 March 2018 - Google released version support-v4:28.0.0-alpha1 
which breaks the project with following error: unable to find attribute 
android:fontVariationSettings and android:ttcIndex

Effect: Force a specific version of the library
*/

configurations.all {
    resolutionStrategy.force 'com.android.support:support-v4:27.1.0'
}

Ostrzeżenie: kod w build.gradle zostanie nadpisany, jeśli usuniesz / dodasz platformę Android. Jeśli z jakiegoś powodu nie chcesz używać wtyczki lub z jakiegoś powodu nie działa, utwórz podpięcie i za każdym razem nadpisuj plik. Sprawdź drugi komentarz tutaj .

Jeśli problem nie ustąpi, możesz spróbować:

cordova platform rm android
cordova platform add android

LUB

Upewnij się, że na testowanym urządzeniu nie masz zainstalowanej poprzedniej wersji aplikacji , ponieważ podczas próby zmiany istniejącej wersji na starszą wersję pojawi się niejednoznaczny błąd: „INSTALL_FAILED_VERSION_DOWNGRADE” i „UnhandledPromiseRejectionWarning: Unhandled Promise Rejection”

Andrew Radulescu
źródło
2
Najlepsza odpowiedź. Instalacja wtyczki jest najlepszym i łatwym rozwiązaniem tego problemu. Automagicznie rozwiązuje problem po dodaniu wtyczki. Prosty. Nie ma potrzeby tworzenia plików w folderze platformy, które należy śledzić ręcznie w przypadku usuwania i dodawania platform.
Neel
Opcja 1 zadziałała dla mnie. To niezwykle frustrujące, że Cordova definiuje ich zależności w sposób nieścisły. Nie wiem, dlaczego to robią. Zostawiłem mój projekt w stanie roboczym kilka tygodni temu, wróć do niego, aby ponownie skompilować wersję debugowania i nagle pojawiają się błędy.
Norman Breau,
Nie udało się pobrać wtyczki cordova-android-support-gradle-release przez rejestr
netshark1000
@ netshark1000 Ten problem nie jest związany z wtyczką, ale z Twoim pakietem.json lub konfiguracją projektu. Zajrzyj do pliku package.json i upewnij się, że wtyczka nie jest już zainstalowana. Jeśli istnieje, po prostu zadzwoń do ionic cordova przygotuj się do ponownego załadowania. Jeśli problem jest trwały, usuń platformy, folder wtyczek i ponownie dodaj platformy. To powinno załatwić sprawę.
Andrew Radulescu
1
Doskonale, uratował mnie numer 1
GBarroso
31

Przydarza mi się ten sam błąd. Najwyraźniej com.android.support:support-v4została wydana nowa wersja biblioteki, a wtyczka, której używam, definiuje com.android.support:support-v4:+jako zależność w plugin.xml. Na +znak oznacza, że będzie uzyskać najnowszą wersję (28.0.0), co wydaje wydaje się być niezgodne z innych wtyczek.

Udało mi się zbudować wersję rozwojową, zmieniając wszystkie zależności wtyczek z com.android.support:support-v4:+na com.android.support:support-v4:27.1.0. Wykonałem również ionic cordova platform remove androidi ionic cordova platform add android. Mam nadzieję, że to pomoże, przynajmniej w rozwoju.

avmatte
źródło
Dziękuję bardzo, Z mojej strony zmieniłem jedną rzecz pliki gradle wtyczki w katalogu platformy android. Sprawdź, czy nie działa z rozwiązania @avmatte.
Sandun Priyanka
nie działa dla mnie, robię to samo, ale po ponownym dodaniu platformy Android wersja powraca do wersji 4: 24.1.1+, nawet gdy usunąłem ją do 27.1.0
Joe
Mam ten błąd: nie można znaleźć com.android.support:support-v4:27.1.0.
Joe Sleiman,
28

Właśnie rozwiązałem ten problem, przechodząc do folderu platforma / Android, edytując project.propertiesplik) i zastępując com.android.support:support-v4:+go com.android.support:support-v4:27.1.0.

Ahmed
źródło
21

Jeśli naprawdę potrzebujesz szybkiej naprawy tego problemu, aby kompilacja działała, możesz spróbować dodać następujące wiersze do pliku platform / android / build.gradle:

configurations.all {
    resolutionStrategy {
        force 'com.android.support:support-v4:27.1.0'
    }
}

W każdym razie ustawienie wersji tutaj nie jest trwałym rozwiązaniem.

stu
źródło
niezłe. zrobiło to dla mnie, ale tak, myślę, że zostanie to utracone, jeśli usunę i dodam platformę lub zainstaluję na nowym komputerze.
Gurnard
Musiałem umieścić to w / platform / android / app; jak mówisz, że nie jest zrównoważony
user542319
@stu nie powiedziałeś w swojej odpowiedzi, gdzie mam umieścić ten kod na dole?
Mohd Ali
15

To dziwne, ale działa, gdy dodam poniższe wiersze z tymi samymi wersjami.

Oto moje powiązane wiersze w platforms/android/build.gradlepliku:

dependencies {
  compile fileTree(dir: 'libs', include: '*.jar')
  // SUB-PROJECT DEPENDENCIES START
  debugCompile(project(path: "CordovaLib", configuration: "debug"))
  releaseCompile(project(path: "CordovaLib", configuration: "release"))
  compile "com.android.support:support-v4:26.+"
  compile "com.android.support:appcompat-v7:26.+"
  // SUB-PROJECT DEPENDENCIES END
}

// ADDED THESE LINES
configurations.all {
  resolutionStrategy.force 'com.android.support:support-v4:26+'
}

W moim projekcie problem wystąpił z powodu wtyczki „cordova-plugin-crosswalk-webview”.

Muhammed Tanrıverdi
źródło
Dzięki temu naprawdę pomogło to w ponownym pobraniu zależności, które zostały wcześniej nadpisane przez aktualizację. Chociaż edytowanie pliku build.gradle jest odradzane, próbowałem wcześniejszych rozwiązań bezskutecznie
Nico
8

Mam ten sam błąd, ale nie w kompilacji Cordova. Nowa wersja com.android.support:appcompat-v7zależności i, ale niezgodna wersja znajduje się w trzecim pakiecie zależnym od com.android.support:appcompat-v7., Więc nie mogę naprawić trzeciego pakietu za pomocą @avmatte rozwiązania .

Użyj rozwiązania @ Sai Teja , aby znaleźć niekompatybilny pakiet:

gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath

Następnie napraw to za pomocą:

configurations.all {
    resolutionStrategy {
        force 'com.android.support:support-compat:{the_same_version}'
        force 'com.android.support:appcompat-v7:{the_same_version}'
        force 'com.android.support:support-core-utils:{the_same_version}'
        force 'com.android.support:support-core-ui:{the_same_version}'
        force 'com.android.support:support-fragment:{the_same_version}'
        force 'com.android.support:support-annotations:{the_same_version}'
        ...
    }
}

Powyższy kod wymusza wersję zależności.

Zrób to
źródło
8

Miałem ten sam błąd. Przeprowadziłem pełne badanie w katalogu wtyczek dla com.android.support:support-v4:+ i zastąpiłem go statycznym kodem wersji.

Dla mnie com.android.support:support-v4:23.4.0 działał dobrze. Nie było wtedy potrzeby usuwania i ponownego dodawania platformy Android.

cpro90
źródło
8

Oto prosty sposób na naprawienie tego problemu, który będzie się utrzymywał, gdy katalog platformy zostanie odbudowany i nie ma potrzeby przeglądania wszystkich wtyczek w celu znalezienia winowajcy. Utwórz plikbuild-extras.gradle z następującą zawartością:

configurations.all {
    resolutionStrategy {
        force 'com.android.support:support-v4:27.1.0'
    }
}

Następnie utwórz plik after_platform_add/010_copy_build_extras.js o następującej zawartości:

#!/usr/bin/env node

var fs = require('fs');

var rootdir = process.argv[2];
var android_dir = `${rootdir}/platforms/android`;
var gradle_filename = 'build-extras.gradle';
var gradle_file = `${rootdir}/${gradle_filename}`;
if (fs.existsSync(android_dir) && fs.existsSync(gradle_file)) {
  fs.createReadStream(gradle_file)
    .pipe(fs.createWriteStream(`${android_dir}/${gradle_filename}`));
}

Teraz odtwórz platformę Android i użyje ona przypiętej biblioteki wsparcia.

Brad Pitcher
źródło
<platform name="android"> <hook src="hooks/copy_build_extras.js" type="before_build" /> </platform>
punkty zaczepienia
OK, test i twój kod jest nieprawidłowy, process.argv[2]jest builddla mnie!
Exlord
Przepraszam @Exlord, myślę, że będzie to wymagało pewnych dostosowań, aby pracować z nowym stylem haka, ale obecnie używam tego dokładnego kodu z zaczepem do podkatalogu i działa świetnie.
Brad Pitcher
8

Rozwiązanie znalazłem na Ionic Forum, które było jedynym rozwiązaniem, które u mnie zadziałało:

Biegać:

platforma ionic cordova rm android

Biegać:

platforma ionic cordova dodaj [email protected]

Biegać:

ionic cordova plugin dodaj cordova-plugin-androidx

Biegać:

ionic cordova plugin dodaje adapter cordova-plugin-androidx

Upewnij się, że Twój gradle.properties ma:

cdvMinSdkVersion = 19

Upewnij się, że plik build.gradle zawiera:

project.ext { defaultBuildToolsVersion="28.0.3" //String 

defaultMinSdkVersion=19 //Integer - Minimum requirement is Android 4.4 

defaultTargetSdkVersion=28 //Integer - We ALWAYS target the latest by default 

defaultCompileSdkVersion=28 //Integer - We ALWAYS compile with the latest by default }

Upewnij się, że plik config.xml zawiera:

<preference name="android-minSdkVersion" value="19" />

od: https://forum.ionicframework.com/t/firebase-app-unable-to-compile-on-android-with-aapt-error/166564/7

co jest również obsługiwane w odpowiedzi stackoverflow: https://stackoverflow.com/a/56656680/839691

alpere
źródło
To jedyne rozwiązanie, które działa w mojej starej Ionic 3aplikacji. Dziękuję Ci!
Sampath
using ionic 3: Pomogło mi to rozwiązać ten problem, ale teraz pojawił się inny problem * Co poszło nie tak: nie powiodło się wykonanie zadania „: app: compileDebugJavaWithJavac”. > Kompilacja nie powiodła się; szczegółowe informacje można znaleźć w danych wyjściowych błędu kompilatora.
Prem Sanil
1
@PremSanil Nie jestem pewien, czy to powoduje problem, ale upewnij się, że pobrałeś narzędzia do kompilacji 28.0.3 w Menedżerze SDK Android Studio.
alpere
@alpere Musiałem zaktualizować wersję Node do v10.17.0 i usunąć nieużywane wtyczki zaczęły działać (używając niebieskiego motywu Ionic 3)
Prem Sanil
5

Niektóre z twoich bibliotek powinny używać

com.android.support:support-v4:+

Znajdź, który to jest, z

gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath

I dodaj tę bibliotekę jako moduł, jeśli nie używa określonej wersji w swojej najnowszej aktualizacji (Podnieś również problem w tej bibliotece!;))

Dzięki @avmatte!

EDYCJA: Możesz również zażądać gradle, aby wymusić wersję biblioteki

ext {
    supportVersion {latest_version_here}
} // In root project.gradle

configurations.all {
    resolutionStrategy {
        force "com.android.support:support-v4:$supportVersion"
    }
}
Teja Konjeti
źródło
4

Miałem wczoraj ten sam problem niespodziewanie. Zaczęło się losowo, ale po przeczytaniu wygląda na to, że ma to związek z aktualizacją, o której wspomniał powyżej @ cpro90. Jednak próbowałem i nie mogłem znaleźć miejsca, w którym dokonać niezbędnej ręcznej zmiany.

W końcu zidentyfikowałem, że przyczyną problemu jest moja wtyczka cordova-plugin-crosswalk-webview. Na GitHubie znalazłem problem z powtórką wtyczki dziś rano i miał ponad 520 wyświetleń do obiadu.

@UNUMObile zasugerował następujące w build.gradlepliku, aby wymusić globalną wcześniejszą wersję:

configurations.all {
    resolutionStrategy.force 'com.android.support:support-v4:24.0.0'
}

To zadziałało dla mnie natychmiast i może pomóc innym z innymi wtyczkami, które również były zależne od „com.android.support:support-4:<28. Wydaje się, że problemem jest nowa wersja 28.

Mam nadzieję, że to pomoże komuś ruszyć do przodu.

Chris Scutt
źródło
4

Kilka wskazówek dla programisty Kotlin:

Jeśli zastosujesz się do tych odpowiedzi tutaj, na pewno nie masz support-v4biblioteki w swoim projekcie, ale nadal widzisz ten błąd, zapoznaj się zktx biblioteki.

Właśnie odkryłem, że używam najnowszej 1.0.0-alpha1wersji biblioteki ktx i ten błąd się pojawia; po tym, jak wróciłem do wersji 0.3, wszystko wróciło do normy.

Anthonyeef
źródło
Nie udało się rozwiązać: androidx.fragment: fragment-ktx: 0.3, kiedy zmieniam na '1.0.0-alpha1' ten sam problem.
Mahmood Ali
@MahmoodAli spójrz na inne zależności? Właśnie publikuję swoją sytuację, a Google może również poprosić o to, aby inny pakiet zrobił ten sam błąd.
Anthonyeef
@MahmoodAli dzięki za link, ale myślę, że większość projektu zacznie używać ktx lib, zanim androidx zostanie ogłoszony w tegorocznym Google IO. Trudno uniknąć pomieszania programu ktx z biblioteką wsparcia ... może migracja do androidx powinna być ostatecznym rozwiązaniem dla tego rodzaju wyjątków.
Anthonyeef
4

Dodaj następujące wiersze do swoich platform / android / build.gradle

  configurations.all {
        resolutionStrategy {
            force 'com.android.support:support-v4:27.1.0'
        }
    }

jeśli nadal masz problem, spróbuj uruchomić to polecenie:

cordova plugin add cordova-android-support-gradle-release --fetch
karan bhatia
źródło
3

W swoim build.gradlepliku dodaj

configurations.all {
    resolutionStrategy {
        force 'com.android.support:support-v4:27.1.0'
    }
}

A w project.propertiespliku zmień cordova.system.library.3na cordova.system.library.3=com.android.support:support-v13:27.+.

mężczyzna
źródło
2

Dla użytkowników Phonegap Build , jak wspomniał @catu w komentarzu, możesz wypróbować tę wtyczkę, której celem jest zapobieganie awariom kompilacji spowodowanym przez dołączenie różnych wersji bibliotek pomocniczych .

user276648
źródło
1

Po prostu napraw ten problem, umieszczając następujące wiersze kodu w pliku platform / android / app / build.gradle, zaraz po bloku buildscript {}:

configurations.all {
    resolutionStrategy {
            force 'com.android.support:support-v4:27.1.0'
    }
}
Kush
źródło
1

Miałem ten sam problem po zainstalowaniu wtyczki cordova-plugin-file-opener2. Został usunięty po wykonaniu: Opcja 1: Zainstaluj wtyczkę cordova-android-support-gradle-release. wtyczka cordova dodaj cordova-android-support-gradle-release --fetch

DineshS
źródło
0

Innym podejściem z tym samym rozwiązaniem jest utworzenie haka. Jest trwały (po ponownej instalacji platformy), możesz go zatwierdzić i nie wymaga ponownego dodawania platformy.

% project% \ scripts \ android \ android-support-version.js

#!/usr/bin/env node

var fs = require('fs');

function replace_strings_in_file(filename, replacementsObject) {
  if (fs.existsSync(filename)) {
    var data = fs.readFileSync(filename, 'utf8');
    Object.keys(replacementsObject).forEach(function (to_replace) {
      var replace_with = replacementsObject[to_replace];
      data = data.replace(to_replace, replace_with);
    });
    console.log(data);
    fs.writeFileSync(filename, data, 'utf8');
  } else {
    console.log('file not found');
  }
}

module.exports = function (context) {
  var rootdir = process.argv[2];
  if (rootdir) {
    replace_strings_in_file("platforms/android/project.properties", {'com.android.support:support-v4:+': 'com.android.support:support-v4:27.1.0'});
    console.log('com.android.support version fix');
  }
};

Init hook w config

% project% \ config.xml

...
<platform name="android">
  <hook src="scripts/android/android-support-version.js" type="before_build" />
  ...

Zainstaluj zależność FS w swoim projekcie:

npm i fs --save-dev

Uruchom kompilację:

cordova buduje Androida

pavelety
źródło
0

BARDZO PROSTE I PRAWIDŁOWE SPOSÓB ROZWIĄZANIA!

Po prostu zaktualizuj sdk i dodaj najnowszą 2 wersję Androida ... i uruchom ponownie komputer! Gotowe...

Teraz mamy czas, aby porozmawiać o samochodach i sporcie ...

Ari Waisberg
źródło
0

Miałem ten sam problem i żadne z podanych rozwiązań mi nie pomogło. Zainstalowanie najnowszej wersji Android SDK Build-tools (27.0.3) rozwiązało mój problem.

Daniel W.
źródło
0

Link do rozwiązania

Wynika to z wtyczki kompatybilnej. Usuń tę wtyczkę, jeśli masz starszą wersję (mniejszą niż 1.2.0 ) i ustaw [email protected]

wtyczka cordova rm cordova-plugin-Compatible --force

wtyczka cordova dodaj [email protected]

platforma cordova rm android

platforma ionic cordova dodaj [email protected]

Pracuję w mojej sprawie. Dzięki :)

Pranay Kumar
źródło
0

aktualizacje odpowiedzi @Brad Pitcher:

hooks/copy_build_extras.js

#!/usr/bin/env node

var fs = require('fs');

module.exports = function (context) {
  var rootdir         = context.opts.projectRoot;
  var android_dir     = `${rootdir}/platforms/android`;
  var gradle_filename = 'build-extras.gradle';
  var gradle_file     = `${rootdir}/${gradle_filename}`;
  if (fs.existsSync(android_dir) && fs.existsSync(gradle_file)) {
    fs.createReadStream(gradle_file)
      .pipe(fs.createWriteStream(`${android_dir}/${gradle_filename}`));
  }
};

config.xml

<platform name="android">
    <allow-intent href="market:*" />
    <hook src="hooks/copy_build_extras.js" type="before_build" />
</platform>

build-extras.gradle w korzeniu reż

configurations.all {
  resolutionStrategy {
    force 'com.android.support:support-v4:27.1.0'
  }
}
Exlord
źródło
0

Miałem problem z odpowiedzią natywną i był on spowodowany następującymi wierszami w moim android/app/build.gradle:

implementation ("com.google.android.gms:play-services-base:+") {
  force = true;
}
implementation ("com.google.android.gms:play-services-maps:+") {
  force = true;
}

itp...

Najwyraźniej to + rozwiązało się do nowej wersji 17.0.0, która zepsuła moją kompilację.
Zmiana + na 16.0.0 (lub 16.0.1 dla Play-Services-Base) rozwiązała mój problem

Uri Klar
źródło
0

Ten problem zabijał mnie od tygodnia.

Ostatecznie skończyłem [email protected]

Zmieniłem android/project.propertiessię, zmieniając

#cordova.system.library.3=com.google.android.gms:play-services-analytics:+
cordova.system.library.3=com.google.android.gms:play-services-analytics:15+

Ta zmiana w końcu wyciągnęła mnie z otchłani ciemności z komunikatem o błędzie ttcIndex.

Wtedy otrzymałem ten błąd

com.android.builder.dexing.DexArchiveBuilderException: 
  com.android.builder.dexing.DexArchiveBuilderException

Błąd był najwyraźniej spowodowany problemem z wersją Java. Potem android/build.gradlezmieniłem się z następującą zmianą

compileOptions {
  #sourceCompatibility JavaVersion.VERSION_1_6
  #targetCompatibility JavaVersion.VERSION_1_6
  sourceCompatibility JavaVersion.VERSION_1_8
  targetCompatibility JavaVersion.VERSION_1_8
}

Zauważ też, że mam cordova-android-support-gradle-releasezainstalowaną wtyczkę, ale nie mam pojęcia, czy jej potrzebuję.

Austin Hutchison
źródło
-1

Jest to zduplikowany wpis w values.xml w folderze o nazwie support-compat-28.0.0-alpha1.aar.

Ten plik w systemie Windows znajdziesz pod adresem \users\YOURUSERID\.gradle\caches\transforms-1\files-1.1

Będąc w tym folderze, musisz przejść o kilka poziomów głębiej do values.xml .

W tym pliku wyszukaj element <declare-styleable name="FontFamilyFont>.

W tym elemencie usuń CZTERY linie za pomocą android: nim.

Po wprowadzeniu tej zmiany mogę ponownie budować bez błędów.

Henk Kelder
źródło