रनिंग "कॉर्डोवा बिल्ड एंड्रॉइड" - विशेषता एंड्रॉइड को खोजने में असमर्थ: फॉन्ट वेरिएशनसेटिंग और एंड्रॉइड: ttcIndex


103

जब मैं दौड़ता हूं cordova build android --buildConfig xxxx --release, तो मुझे निम्नलिखित त्रुटि मिलती है:

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

अजीब बात यह है कि मैं संकलन के लिए दो macOS मशीनों का उपयोग करता हूं, और मुझे यह त्रुटि केवल उसी कोड के लिए उनमें से एक पर मिलती है।

यहाँ ./gradlew cdvPrintPropsमैं दो मशीनों पर मिलता है:

: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

नीचे उपयोग किए गए प्लगइन्स की सूची दी गई है:

$ 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"

मैं इस समस्या को कैसे ठीक करुं?


यह मुद्दा मेरे साथ पूरे दिन भी रहा है। मैं इसे एक प्लगइन मैं उपयोग करने के लिए नीचे संकुचित है। हालाँकि मुझे अपने अनुप्रयोगों के लिए इस प्लगइन की आवश्यकता है। आप किस प्लगइन का उपयोग कर रहे हैं?
क्रिस आर

@ क्रिस हाय, मैंने प्लगइन सूची के साथ ऊपर पोस्ट पूरा कर लिया है। सादर।
स्टीफन पदोवनी

1
उत्तर की मदद से कोई नहीं, अब एक दिन के लिए इससे जूझ रहा है।
कुश्राव

जवाबों:


106

निर्माण-एक्स्ट्रा.ग्रेड में निम्नलिखित डालें

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

धन्यवाद! यह एक संस्करण में पिन करने के लिए कॉर्डोवा के लिए एक उचित दृष्टिकोण है।
होजुकि

10
मैं अपने प्लेटफार्मों स्रोत नियंत्रण से बाहर फ़ोल्डर इसलिए आदेश यह पूरा करने में रखने के लिए, मेरे द्वारा बनाए गए build-extras.gradleअपने प्रोजेक्ट जड़ में इसे कॉपी कोड जोड़ में hooks\after_platform_add gist.github.com/charlesbedrosian/...
cbedrosian

8
मेरे पास ऐसी कोई फ़ाइल नहीं है: "बिल्ड-एक्सट्रा.ग्रेडल"
जो

3
फोनगैप-बिल्ड के अन्य उपयोगकर्ताओं के लिए। उत्तर कॉर्डोवा-एंड्रॉइड-सपोर्ट- ग्रेड
catu

7
@ StéphanePadovani की टिप्पणी के अलावा, ध्यान दें कि इसे कॉर्डोवा एंड्रॉइड 7.0.0 से / प्लेटफार्मों / एंड्रॉइड / ऐप फ़ोल्डर में बनाया जाना चाहिए
विल क्रु

83

गूगल नया संस्करण जारी किया 28.0.0-alpha1 की com.android.support:support-v4 जो 2 नई विशेषताएं (: fontVariationSettings और एंड्रॉयड: ttcIndex एंड्रॉयड) जोड़ रहा है। कुछ प्लगइन्स नवीनतम एंड्रॉइड-सपोर्ट लाइब्रेरी का उपयोग कर रहे हैं, जिसके परिणामस्वरूप अवांछित असंगतताएं होती हैं।

विकल्प 1: कॉर्डोवा-एंड्रॉइड-सपोर्ट-ग्रेड-रिलीज़ प्लगइन स्थापित करें ।

अच्छी तरह से प्रलेखित प्लगइन जो "अन्य प्लगिन द्वारा निर्दिष्ट एंड्रॉइड सपोर्ट लाइब्रेरी के विभिन्न संस्करणों को एक विशिष्ट संस्करण में संरेखित करता है"। बिना किसी विनाशकारी व्यवहार के परीक्षण किया गया।

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

विकल्पों के पूर्ण सेट के लिए प्रलेखन पढ़ें: रीडमी

विकल्प 2 : प्लेटफ़ॉर्म / एंड्रॉइड के अंतर्गत build.gradle में अगला कोड स्निपेट जोड़ें

/** 
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'
}

चेतावनी: यदि आप Android प्लेटफ़ॉर्म को निकालते / जोड़ते हैं, तो build.gradle में कोड ओवरराइट हो जाएगा। यदि आप किसी कारण से प्लगइन का उपयोग नहीं करना चाहते हैं या किसी तरह आपके लिए काम नहीं कर रहे हैं, तो इसके बजाय एक हुक बनाएं और हर बार फ़ाइल को ओवरराइट करें। यहाँ 2 टिप्पणी की जाँच करें

यदि समस्या लगातार है तो आप कोशिश कर सकते हैं:

cordova platform rm android
cordova platform add android

या

सुनिश्चित करें कि आपके पास आपके द्वारा परीक्षण किए गए डिवाइस पर इंस्टॉल किए गए एप्लिकेशन का पिछला संस्करण नहीं है, क्योंकि जब आप मौजूदा संस्करण को डाउनग्रेड करने का प्रयास करते हैं तो आपको एक अस्पष्ट त्रुटि प्राप्त होगी: "INSTALL_FAILED_VERSION_DOWNGRADE" और "अनइंस्टॉलप्रोमिसर अस्वीकृति: अखंडित वादा अस्वीकृति"


2
सबसे बढ़िया उत्तर। प्लगइन स्थापित करना इस का सबसे अच्छा और आसान समाधान है। एक बार प्लगइन जुड़ जाने के बाद यह ऑटोमैटिकली एरर को हल कर देता है। सरल। प्लेटफ़ॉर्म फ़ोल्डर में फ़ाइलों को बनाने के लिए खेलने की आवश्यकता नहीं होती है, जिन्हें प्लेटफ़ॉर्म को हटाने और जोड़ने की स्थिति में मैन्युअल रूप से ट्रैक करने की आवश्यकता होती है।
नील

विकल्प 1 ने मेरे लिए काम किया। यह बेहद निराशाजनक है कि कॉर्डोवा गैर-सख्त तरीके से अपनी निर्भरता को परिभाषित करते हैं। मुझे नहीं पता कि वे ऐसा क्यों करते हैं। एक सप्ताह पहले काम कर रहे राज्य में मेरी परियोजना को छोड़ दिया, एक डिबग संस्करण को फिर से शुरू करने के लिए इसे वापस आया और अचानक त्रुटियां होती हैं।
नॉर्मन ब्रेउ

प्लग-इन कॉर्डोवा-एंड्रॉइड-सपोर्ट-
ग्रेड

@ netshark1000 यह समस्या प्लगइन से संबंधित नहीं है, लेकिन आपके package.json या कुछ प्रोजेक्ट कॉन्फ़िगरेशन के साथ है। Package.json में एक नज़र डालें और सुनिश्चित करें कि प्लगइन पहले से इंस्टॉल नहीं है। यदि अस्तित्व में है तो बस आयनिक कॉर्डोवा को फिर से लोड करने के लिए तैयार करें। यदि समस्या लगातार हटाए गए प्लेटफ़ॉर्म है, तो प्लगइन्स फ़ोल्डर और प्लेटफार्मों को फिर से जोड़ें। यह काम कर जाना चाहिए।
एंड्रयू रैड्यूलस्कू

1
परफेक्ट, # 1 ने मुझे बचाया
GBarroso

31

वही त्रुटि मेरे साथ हो रही है। जाहिर है, com.android.support:support-v4पुस्तकालय का एक नया संस्करण जारी किया गया था, और मैं जिस प्लगइन का उपयोग कर रहा हूं com.android.support:support-v4:+वह निर्भरता के रूप में है plugin.xml+संकेत का मतलब है कि यह नवीनतम संस्करण (28.0.0) है, जो लगता है मिल जाएगा अन्य प्लग-इन के साथ असंगत हो रहा है।

मैं से सभी प्लगइन निर्भरता बदलकर एक विकास संस्करण बनाने के लिए कर रहा था com.android.support:support-v4:+करने के लिए com.android.support:support-v4:27.1.0। इसके अलावा, मैं निष्पादित ionic cordova platform remove androidऔर ionic cordova platform add android। उम्मीद है कि यह मदद करता है, कम से कम विकास के लिए।


बहुत बहुत धन्यवाद, मेरे पक्ष में, मैंने एंड्रॉइड प्लेटफ़ॉर्म निर्देशिका के अंदर प्लगइन की एक चीज़ ग्रेड फ़ाइलों को बदल दिया। कृपया चेकआउट करें यदि यह @avmatte समाधान से काम नहीं कर रहा है।
संध्या प्रियंका

मेरे लिए काम नहीं कर रहा, मैं ऐसा ही करता हूं, लेकिन जब मैं एंड्रॉइड प्लेटफॉर्म को फिर से v4: 24.1.1+ पर वापस लाता हूं, तब भी जब मैं इसे 27.1.0 तक हटा देता हूं
जो

मेरे पास यह त्रुटि है: com.android.support:support-v4:27.1.0 नहीं मिल सका।
जो स्लीमैन

28

मैंने अभी इस मुद्दे को प्लेटफ़ॉर्म / एंड्रॉइड फ़ोल्डर पर जाकर तय किया है project.properties) और फ़ाइल को संपादित करके बदल दिया com.android.support:support-v4:+है com.android.support:support-v4:27.1.0


21

यदि आपको वास्तव में बस अपने निर्माण को चलाने के लिए उस मुद्दे पर एक त्वरित सुधार की आवश्यकता है, तो आप अपने प्लेटफार्मों / Android / build.gradle फ़ाइल में निम्न पंक्तियों को जोड़ने का प्रयास कर सकते हैं:

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

किसी भी तरह, यहां संस्करण सेट करना एक स्थायी निर्धारण नहीं है।


अच्छा है। यह मेरे लिए था, लेकिन हाँ मुझे लगता है कि यह खो जाएगा यदि मैं हटा देता हूं और प्लेटफ़ॉर्म को जोड़ता हूं या एक नई मशीन स्थापित करता हूं।
गर्डार्ड

इसे / प्लेटफार्मों / एंड्रॉइड / ऐप में डालना था; जैसा कि आप कहते हैं कि इसका टिकाऊ नहीं है
user542319

@stu आपने अपने उत्तर में यह नहीं बताया है कि मुझे यह कोड नीचे कहां लगाना चाहिए?
मोहम्मद अली

15

यह अजीब है, लेकिन यह काम करता है जब मैं नीचे की पंक्तियों को समान संस्करणों के साथ जोड़ता हूं।

यह platforms/android/build.gradleफ़ाइल में मेरी संबंधित लाइनें हैं :

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+'
}

मेरी परियोजना में, 'कॉर्डोवा-प्लगइन-क्रॉसवॉक-वेबव्यू' प्लगइन के कारण समस्या हुई।


धन्यवाद यह वास्तव में निर्भरता को फिर से डाउनलोड करने में मदद करता है जो पहले अद्यतन द्वारा ओवरराइट किए गए थे। हालांकि अपने build.gradle को संपादित करने से हतोत्साहित किया जाता है, मैंने पिछले समाधानों का लाभ उठाने की कोशिश की
निको

8

मेरे पास एक ही त्रुटि है लेकिन कॉर्डोवा बिल्ड में नहीं। com.android.support:appcompat-v7और निर्भरता का एक नया संस्करण। लेकिन असंगत संस्करण तीसरे पैकेज में है जो निर्भर करता है। इसलिए com.android.support:appcompat-v7मैं @avmatte के समाधान के साथ तीसरे पैकेज को तय नहीं कर सकता ।

असंगत पैकेज खोजने के लिए @ साई तेजा के समाधान का उपयोग करें :

gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath

फिर इसके साथ तय किया:

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}'
        ...
    }
}

ऊपर कोड निर्भरता संस्करण को मजबूर करता है।


8

मैं उसी त्रुटि का सामना कर रहा था। Com.android.support:support-v4:+ के लिए प्लगइन-निर्देशिका में एक पूर्ण शोध किया और इसे एक स्थैतिक संस्करण कोड के साथ बदल दिया।

मेरे लिए, com.android.support:support-v4:23.4.0 ने ठीक काम किया। उसके बाद android प्लेटफॉर्म को हटाने और फिर से जोड़ने की कोई आवश्यकता नहीं थी।


8

यहाँ इसे ठीक करने का एक आसान तरीका है जो तब बनेगा जब प्लेटफ़ॉर्म डाइरेक्टरी को फिर से बनाया जाएगा और अपराधी को आज़माने और खोजने के लिए अपने सभी प्लगइन्स से गुजरने की ज़रूरत नहीं है। build-extras.gradleइन सामग्रियों के साथ एक फ़ाइल बनाएँ :

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

फिर after_platform_add/010_copy_build_extras.jsनिम्नलिखित सामग्री के साथ फाइल बनाएं :

#!/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}`));
}

अब एंड्रॉइड प्लेटफॉर्म को फिर से बनाएँ और यह पिन किए गए समर्थन लाइब्रेरी का उपयोग करेगा।


उप निर्देशिका हुक <platform name="android"> <hook src="hooks/copy_build_extras.js" type="before_build" /> </platform>
अपग्रेड

ठीक है परीक्षण किया गया है और आपका कोड मेरे लिए अमान्य process.argv[2]है build!
एक्सलॉर्ड

क्षमा करें @ मुझे पता है कि नई शैली हुक के साथ काम करने के लिए इसे कुछ समायोजन की आवश्यकता होगी, लेकिन मैं इस सटीक कोड का उपयोग उप निर्देशिका हुक के साथ वर्तमान में कर रहा हूं और यह बहुत अच्छा काम कर रहा है।
ब्रैड पिचर

8

मुझे Ionic फोरम पर समाधान मिला, जो एकमात्र समाधान था जिसने मेरे लिए काम किया:

Daud:

आयनिक कॉर्डोवा प्लेटफॉर्म आरएम एंड्रॉइड

Daud:

आयनिक कॉर्डोवा मंच android@8.0.0 जोड़ें

Daud:

आयनिक कॉर्डोवा प्लगइन कॉर्डोवा-प्लगइन-एंड्रॉइड को जोड़ते हैं

Daud:

आयनिक कॉर्डोवा प्लगइन कॉर्डोवा-प्लगइन-एंड्रॉइड-एडेप्टर जोड़ते हैं

सुनिश्चित करें कि आपके gradle.properties में है:

cdvMinSdkVersion = 19

सुनिश्चित करें कि आपका build.gradle है:

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 }

सुनिश्चित करें कि आपका config.xml है:

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

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

जिसे स्टैकओवरफ्लो उत्तर में भी संभाला जाता है: https://stackoverflow.com/a/56656680/839691


यह मेरे पुराने Ionic 3ऐप पर एकमात्र समाधान काम करता है । धन्यवाद!
संपत

आयनिक 3 का उपयोग करना: इससे मुझे इस समस्या को हल करने में मदद मिली, लेकिन अब एक और मुद्दा मिल गया * क्या गलत हो गया: निष्पादन कार्य के लिए विफल रहा ': ऐप: compileDebugJavaWithJavac'। > संकलन विफल; विवरण के लिए संकलक त्रुटि आउटपुट देखें।
प्रेम सानिल

1
@PremSanil सुनिश्चित नहीं है कि यह आपकी समस्या का कारण है, लेकिन सुनिश्चित करें कि आपने Android Studio के SDK प्रबंधक में बिल्ड टूल 28.0.3 डाउनलोड किया है।
अल्फा

@alpere मुझे v10.17.0 को नोड संस्करण अपडेट करना था और अप्रयुक्त प्लगइन्स को काम करना शुरू कर दिया (आयनिक 3 ब्लू थीम का उपयोग करना)
प्रेम सनील

5

आपके कुछ पुस्तकालयों का उपयोग किया जाना चाहिए

com.android.support:support-v4:+

जो एक है, उसके साथ खोजें

gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath

और उस पुस्तकालय को एक मॉड्यूल के रूप में जोड़ें यदि यह नवीनतम अद्यतन में एक विशिष्ट संस्करण का उपयोग नहीं कर रहा है (इसके अलावा उस पुस्तकालय में एक समस्या उठाएं;))

@Avmatte का शुक्रिया!

संपादित करें: आप लाइब्रेरी संस्करण को मजबूर करने के लिए ग्रेडेल का अनुरोध भी कर सकते हैं

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

configurations.all {
    resolutionStrategy {
        force "com.android.support:support-v4:$supportVersion"
    }
}

4

मुझे कल नीले रंग से बाहर एक ही समस्या हो रही थी। यह बेतरतीब ढंग से शुरू हुआ, लेकिन चारों ओर पढ़ने से, ऐसा लगता है कि यह एक अद्यतन के साथ करना है जैसा कि @ cpro90 द्वारा ऊपर उल्लेख किया गया है। हालांकि, मैंने कोशिश की और पता नहीं चला कि आवश्यक मैनुअल परिवर्तन कहां करना है।

आखिरकार मैंने पहचान लिया कि समस्या मेरे कॉर्डोवा-प्लगइन-क्रॉसवॉक-वेबव्यू प्लगइन के कारण हो रही है। GitHub पर, मुझे आज सुबह प्लगइन रिप्रो पर मुद्दा मिला , और दोपहर के भोजन के 520 से अधिक दृश्य थे।

@UNUMObile ने build.gradleविश्व स्तर पर पुराने संस्करण को लागू करने के लिए फ़ाइल में निम्नलिखित सुझाव दिए :

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

यह मेरे लिए तुरंत काम करता है और अन्य प्लगइन्स के साथ दूसरों की मदद कर सकता है, जो 'com.android.support:support-4support.<28' पर अपनी निर्भरता रखते हैं। नया संस्करण 28 इस मुद्दे को लगता है।

मुझे उम्मीद है कि इससे किसी को आगे बढ़ने में मदद मिलेगी।


4

कोटलिन डेवलपर के लिए कुछ सुझाव:

यदि आप यहां इन उत्तरों का पालन करते हैं, तो आप सुनिश्चित हैं कि आपके पास support-v4अपनी परियोजना में पुस्तकालय नहीं है, लेकिन आप अभी भी इस त्रुटि को देख रहे हैं, कृपया ktxपुस्तकालय पर एक नज़र डालें ।

मैं अभी पता 1.0.0-alpha1लगाता हूं कि मैं ktx लाइब्रेरी के लिए नवीनतम संस्करण का उपयोग कर रहा हूं और यह त्रुटि दिखती है; बाद मैं संस्करण में वापस बदल गया 0.3, सब कुछ वापस सामान्य हो गया।


हल करने में विफल: androidx.fragment: fragment-ktx: 0.3, जब मैं '1.0.0-अल्फ़ा 1' में बदलता हूं तो वही समस्या होती है।
महमूद अली

@ महमूदअली दूसरे आश्रितों पर कटाक्ष? मैं सिर्फ अपनी स्थिति पोस्ट कर रहा हूं, और Google के पास अन्य पैकेज भी वही गलत हो सकते हैं।
एंथोनीफ

@MahmoodAli लिंक के लिए धन्यवाद, लेकिन मुझे लगता है कि इस साल के Google IO में Androidx की घोषणा से पहले अधिकांश परियोजना ktx lib का उपयोग करना शुरू कर देती है। यह समर्थन पुस्तकालय के साथ ktx मिश्रण से बचने के लिए मुश्किल है ... शायद इस तरह के अपवाद के लिए androidx का प्रवास अंतिम समाधान होना चाहिए।
एंथोनीफ

4

अपने प्लेटफ़ॉर्म / android / build.gradle में निम्न पंक्तियाँ जोड़ें

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

यदि अभी भी समस्या चल रही है तो इस कमांड को चलाने का प्रयास करें:

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

3

अपनी build.gradleफ़ाइल में जोड़ें

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

और आपकी project.propertiesफ़ाइल में बदल cordova.system.library.3जाती है cordova.system.library.3=com.android.support:support-v13:27.+


2

के लिए Phonegap बिल्ड उपयोगकर्ताओं, के रूप में @catu एक टिप्पणी में mentionned, तुम कोशिश कर सकते इस प्लगइन जो उद्देश्य है निर्माण विफलताओं समर्थन लाइब्रेरी के विभिन्न संस्करणों सहित की वजह से रोकने के लिए


1

बस इस कोड को प्लेटफ़ॉर्म / android / app / build.gradle फ़ाइल में कोड की निम्नलिखित पंक्तियाँ डालकर ठीक करें, इसके बाद ही बिल्ड {{ब्लॉक} करें:

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

1

कॉर्डोवा-प्लगइन-फाइल-ओपनर 2 प्लगइन स्थापित करने के बाद मुझे यही समस्या थी। यह करने के बाद फिर से शुरू हुआ: विकल्प 1: कॉर्डोवा-एंड्रॉइड-सपोर्ट-ग्रेड-रिलीज़ प्लगइन स्थापित करें। कॉर्डोबा प्लगइन कॉर्डोबा-एंड्रॉइड-सपोर्ट-ग्रेड-रिलीज़ -fetch जोड़ें


0

एक ही समाधान के साथ एक और aproach एक हुक बना रहा है। यह लगातार (प्लेटफ़ॉर्म पुनर्स्थापना के बाद) है, आप इसे प्रतिबद्ध कर सकते हैं और इसे फिर से प्लेटफ़ॉर्म जोड़ने की आवश्यकता नहीं है।

% परियोजना% \ लिपियों \ एंड्रॉयड \ android-समर्थन-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');
  }
};

विन्यास में हुक

% परियोजना% \ config.xml

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

अपने प्रोजेक्ट के लिए fs निर्भरता स्थापित करें:

npm i fs --save-dev

रन बनाएँ:

cordova android का निर्माण


0

करना बहुत ही आसान और सही इसे सुलझाने की तरह!

बस sdk को अपडेट करें और एंड्रॉइड के नवीनतम 2 संस्करण को जोड़ें ... और कंप्यूटर को पुनरारंभ करें! किया हुआ...

अब हमारे पास कारों और खेल के बारे में बात करने का समय है ...


0

मुझे भी यही समस्या थी, और दिए गए किसी भी समाधान ने मेरे लिए काम नहीं किया। Android SDK बिल्ड-टूल्स (27.0.3) के नवीनतम संस्करण को स्थापित करने से मेरी समस्या हल हो गई।


0

समाधान लिंक

यह कॉम्पिटिटर प्लगइन के कारण है। यदि आपके पास पुराना संस्करण है ( 1.2.0 से कम ) और कॉर्डोवा-android@6.3.0 सेट करें तो उस प्लगइन को हटा दें

कॉर्डोवा प्लगइन rm कॉर्डोवा-प्लगइन-कम्प्रेसर -फोर्स

कॉर्डोबा प्लगइन कॉर्डोवा-plugin-compat@1.2.0 जोड़ें

cordova platform rm android

आयनिक कॉर्डोबा प्लेटफ़ॉर्म android@6.3.0 जोड़ें

मेरे मामले में काम करना। धन्यवाद :)


0

@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 जड़ में

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

0

मैं मूल निवासी प्रतिक्रिया के साथ इस मुद्दे पर चल रहा था और यह मेरे द्वारा निम्नलिखित लाइनों के कारण था android/app/build.gradle:

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

आदि...

जाहिरा तौर पर इस + ने एक नए 17.0.0 संस्करण का समाधान किया जिसने मेरे निर्माण को तोड़ दिया।
+ को 16.0.0 (या प्ले-सर्विसेज-बेस के लिए 16.0.1) में बदलने से मेरी समस्या हल हो गई


0

यह समस्या मुझे एक सप्ताह से मार रही थी।

अंतत: मैं खत्म हो गया android@6.4.0

मैं बदल android/project.propertiesकर बदल गया

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

उस बदलाव ने आखिरकार मुझे ttcIndex error message गड्ढे से बाहर निकाल दिया।

तब मुझे यह त्रुटि मिली

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

जावा संस्करण समस्या के कारण त्रुटि स्पष्ट रूप से थी। मैं फिर android/build.gradleनिम्नलिखित परिवर्तन के साथ बदल गया

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

यह भी ध्यान दें कि मेरे पास cordova-android-support-gradle-releaseप्लगइन स्थापित है, लेकिन मुझे कोई ज़रूरत नहीं है अगर मुझे इसकी आवश्यकता है।


-1

यह एक फोल्डर में values.xml में डुप्लिकेट प्रविष्टि है support-compat-28.0.0-alpha1.aar

आपको यह फ़ाइल विंडोज़ पर मिलेगी \users\YOURUSERID\.gradle\caches\transforms-1\files-1.1

एक बार उस फ़ोल्डर के अंदर आपको कुछ स्तरों को मानों से गहरा जाना होगा

उस फ़ाइल में, एक तत्व की खोज करें <declare-styleable name="FontFamilyFont>

उस तत्व में, इसके साथ चार लाइनों को हटा दें android:

मैंने उस परिवर्तन के बाद मैं त्रुटियों के बिना फिर से निर्माण कर सकता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.