Đang chạy “cordova build android” - không thể tìm thấy thuộc tính android: fontVariationSettings và android: ttcIndex


103

Khi tôi chạy cordova build android --buildConfig xxxx --release, tôi gặp lỗi sau:

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

Điều kỳ lạ là tôi sử dụng hai máy macOS để biên dịch và tôi chỉ gặp lỗi này trên một trong số chúng cho cùng một mã.

Đây là kết quả ./gradlew cdvPrintPropstôi nhận được trên hai máy:

: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

Dưới đây là danh sách các plugin được sử dụng:

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

Làm cách nào để khắc phục sự cố này?


Vấn đề này đã xảy ra với tôi cả ngày. Tôi đã thu hẹp nó thành một plugin mà tôi sử dụng. Tuy nhiên, tôi yêu cầu plugin này cho các ứng dụng của mình. Bạn đang sử dụng plugin nào?
Chris R

@ChrisRitten Xin chào, tôi đã hoàn thành bài đăng ở trên với danh sách plugin. Trân trọng.
Stéphane Padovani

1
không có câu trả lời nào giúp ích được, vật lộn với điều này trong một ngày nay.
khusrav

Nếu điều này có thể giúp freakyjolly.com/…
Code Spy

Câu trả lời:


106

Chỉ cần đưa phần sau vào build-extras.gradle

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

Cảm ơn! Đây là một cách tiếp cận hợp lý để Cordova ghim vào một phiên bản.
Hozuki

10
Tôi giữ nền tảng của tôi thư mục ngoài tầm kiểm soát nguồn như vậy để thực hiện điều này, tôi tạo ra build-extras.gradletrong thư mục gốc dự án của tôi mã để sao chép nó vào thêm hooks\after_platform_add gist.github.com/charlesbedrosian/...
cbedrosian

8
tôi không có tệp như vậy: "build-extras.gradle"
Joe Sleiman,

3
Đối với những người dùng khác của phonegap-build. Câu trả lời là cordova-android-support-gradle-release forum.adobe.com/thread/2462835
catu

7
Ngoài nhận xét của @ StéphanePadovani, lưu ý rằng nó nên được tạo trong thư mục / platform / android / app từ Cordova Android 7.0.0
Will Kru

83

Google đã phát hành phiên bản mới 28.0.0-alpha1 của com.android.support:support-v4 , bổ sung thêm 2 thuộc tính mới (android: fontVariationSettings và android: ttcIndex). Một số plugin đang sử dụng các thư viện hỗ trợ android mới nhất dẫn đến tình trạng không tương thích không mong muốn.

Tùy chọn 1: Cài đặt plugin cordova-android-support-gradle-release .

Plugin được tài liệu hóa tốt "điều chỉnh các phiên bản khác nhau của thư viện Hỗ trợ Android được chỉ định bởi các plugin khác thành một phiên bản cụ thể". Đã kiểm tra mà không có bất kỳ hành vi phá hoại nào.

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

Đọc tài liệu để biết đầy đủ các tùy chọn: Readme

Tùy chọn 2 : Thêm đoạn mã tiếp theo trong build.gradle dưới các nền tảng / 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'
}

Cảnh báo: mã trong build.gradle sẽ bị ghi đè nếu bạn xóa / thêm nền tảng Android. Nếu bạn không muốn sử dụng plugin vì lý do nào đó hoặc cách nào đó không hoạt động với bạn, thay vào đó hãy tạo một hook và ghi đè lên tệp mỗi lần. Kiểm tra bình luận thứ 2 tại đây .

Nếu sự cố vẫn tiếp diễn, bạn có thể thử:

cordova platform rm android
cordova platform add android

HOẶC LÀ

Đảm bảo rằng bạn chưa cài đặt phiên bản trước của ứng dụng trên thiết bị mà bạn kiểm tra vì bạn sẽ nhận được lỗi không rõ ràng khi cố gắng hạ cấp phiên bản hiện có: "INSTALL_FAILED_VERSION_DOWNGRADE" và "UnhandledPromiseRejectionWarning: Từ chối lời hứa chưa được xử lý"


2
Câu trả lời tốt nhất. Cài đặt plugin là giải pháp tốt nhất và dễ dàng cho việc này. Nó tự động giải quyết lỗi sau khi plugin được thêm vào. Đơn giản. Không cần phải xoay quanh việc tạo tệp trong thư mục nền tảng cần được theo dõi thủ công trong trường hợp xóa và thêm nền tảng.
Neel

Tùy chọn 1 đã làm việc cho tôi. Điều cực kỳ khó chịu khi Cordova xác định sự phụ thuộc của họ theo cách không chặt chẽ. Tôi không biết tại sao họ làm điều đó. Để dự án của tôi ở trạng thái hoạt động vài tuần trước, quay lại với nó để biên dịch lại phiên bản gỡ lỗi và đột nhiên xảy ra lỗi.
Norman Breau

Không tìm nạp được plugin cordova-android-support-gradle-release thông qua sổ đăng ký
netshark1000

@ netshark1000 Vấn đề này không liên quan đến plugin mà là với package.json của bạn hoặc một số cấu hình dự án. Hãy xem package.json và đảm bảo rằng plugin chưa được cài đặt. Nếu là tồn tại, chỉ cần gọi ionic cordova chuẩn bị tải lại. Nếu sự cố vẫn tiếp diễn, hãy xóa nền tảng, thư mục plugin và thêm lại nền tảng. Cái này cần phải dùng mẹo.
Andrew Radulescu,

1
Hoàn hảo, số 1 đã cứu tôi
GBarroso

31

Lỗi tương tự đang xảy ra với tôi. Rõ ràng, một phiên bản mới của com.android.support:support-v4thư viện đã được phát hành và plugin mà tôi đang sử dụng định nghĩa com.android.support:support-v4:+là phụ thuộc vào plugin.xml. Các +phương tiện dấu hiệu cho thấy nó sẽ nhận được phiên bản mới nhất (28.0.0), mà dường như có vẻ là không tương thích với các plugin khác.

Tôi đã có thể tạo phiên bản phát triển bằng cách thay đổi tất cả các phụ thuộc plugin từ com.android.support:support-v4:+sang com.android.support:support-v4:27.1.0. Ngoài ra, tôi đã thực hiện ionic cordova platform remove androidionic cordova platform add android. Hy vọng nó sẽ giúp, ít nhất là cho sự phát triển.


Cảm ơn bạn rất nhiều, Bên mình đã thay đổi một thứ tệp gradle của plugin bên trong thư mục nền tảng android. vui lòng kiểm tra nếu nó không hoạt động từ giải pháp @avmatte.
Sandun Priyanka

không làm việc cho tôi, tôi cũng làm như vậy nhưng khi tôi thêm lại nền tảng Android phiên bản trở về v4: 24.1.1+ ngay cả khi tôi loại bỏ nó để 27.1.0
Joe Sleiman

tôi gặp lỗi này: Không thể tìm thấy com.android.support:support-v4:27.1.0.
Joe Sleiman

28

Tôi vừa khắc phục sự cố này bằng cách đi tới thư mục nền tảng / android và chỉnh sửa project.properties) tệp và thay thế com.android.support:support-v4:+bằng com.android.support:support-v4:27.1.0.


21

Nếu bạn thực sự chỉ cần sửa chữa nhanh vấn đề đó để chạy bản dựng của mình, bạn có thể thử thêm các dòng sau vào tệp platform / android / build.gradle của mình:

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

Nhưng dù sao, thiết lập phiên bản ở đây không phải là một bản sửa lỗi bền vững.


một trong những tốt đẹp. điều này đã làm điều đó cho tôi nhưng vâng, tôi đoán điều này sẽ bị mất nếu tôi xóa và thêm nền tảng hoặc cài đặt trên một máy mới.
Gurnard

Phải đưa cái này vào / platform / android / app; như bạn nói nó không bền
user542319 1/1218

@stu bạn chưa cho biết trong câu trả lời của mình, tôi nên đặt mã này ở đâu dưới cùng?
Sayed Mohd Ali

15

Thật kỳ lạ, nhưng nó hoạt động khi tôi thêm các dòng bên dưới với các phiên bản giống nhau.

Đây là các dòng liên quan của tôi trong platforms/android/build.gradletệp:

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

Trong dự án của tôi, sự cố đã xảy ra do plugin 'cordova-plugin-crosswalk-webview'.


Cảm ơn, điều này thực sự đã giúp tải xuống lại các phụ thuộc đã bị bản cập nhật ghi đè trước đó. Mặc dù không khuyến khích chỉnh sửa build.gradle của bạn, tôi đã thử các giải pháp trước đó nhưng không có kết quả
Nico

8

Tôi gặp lỗi tương tự nhưng không phải trong bản dựng cordova. Một phiên bản mới của com.android.support:appcompat-v7và các phần phụ thuộc. Nhưng phiên bản không tương thích nằm trong gói thứ ba phụ thuộc vào com.android.support:appcompat-v7. Vì vậy, tôi không thể sửa gói thứ ba bằng giải pháp của @avmatte .

Sử dụng giải pháp của @ Sai Teja để tìm gói không tương thích:

gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath

Sau đó, sửa nó bằng:

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

Mã trên buộc phiên bản phụ thuộc.


8

Tôi đã phải đối mặt với cùng một lỗi. Đã nghiên cứu đầy đủ trong thư mục plugin cho com.android.support:support-v4:+ và thay thế nó bằng mã phiên bản tĩnh.

Đối với tôi, com.android.support:support-v4:23.4.0 hoạt động tốt. Sau đó không cần phải xóa và thêm lại nền tảng Android.


8

Đây là một cách dễ dàng để khắc phục nó sẽ vẫn tồn tại khi thư mục nền tảng được xây dựng lại và không cần phải xem qua tất cả các plugin của bạn để thử và tìm ra thủ phạm. Tạo một tệp build-extras.gradlevới các nội dung sau:

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

Sau đó tạo tệp after_platform_add/010_copy_build_extras.jsvới nội dung sau:

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

Bây giờ tạo lại nền tảng android và nó sẽ sử dụng thư viện hỗ trợ được ghim.


móc thư mục phụ không được tán thành sử dụng config.xml<platform name="android"> <hook src="hooks/copy_build_extras.js" type="before_build" /> </platform>
Exlord

ok đã kiểm tra và mã của bạn dường như không hợp lệ process.argv[2]buildcho tôi!
Exlord

Xin lỗi @Exlord Tôi đoán nó sẽ cần một số điều chỉnh để hoạt động với hook kiểu mới, nhưng tôi đang sử dụng mã chính xác này với hook thư mục con hiện tại và nó hoạt động rất tốt.
Brad Pitcher

8

Tôi đã tìm thấy giải pháp trên Diễn đàn Ionic, đó là giải pháp duy nhất phù hợp với tôi:

Chạy:

ionic cordova nền tảng rm android

Chạy:

nền tảng cordova ionic thêm android@8.0.0

Chạy:

ionic cordova plugin thêm cordova-plugin-androidx

Chạy:

ionic wireova plugin thêm cordova-plugin-androidx-adapter

Đảm bảo gradle.properties của bạn có:

cdvMinSdkVersion = 19

Đảm bảo rằng build.gradle của bạn có:

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 }

Đảm bảo rằng config.xml của bạn có:

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

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

cũng được xử lý trong câu trả lời stackoverflow: https://stackoverflow.com/a/56656680/839691


Đây là giải pháp duy nhất hoạt động trên Ionic 3ứng dụng cũ của tôi . Cảm ơn bạn!
Sampath

bằng cách sử dụng ionic 3: Điều này đã giúp tôi giải quyết vấn đề này, nhưng lại gặp sự cố khác * Đã xảy ra sự cố: Không thực thi được tác vụ ': app: compileDebugJavaWithJavac'. > Biên dịch không thành công; xem đầu ra lỗi trình biên dịch để biết chi tiết.
Prem Sanil

1
@PremSanil Không chắc điều này gây ra sự cố của bạn nhưng hãy đảm bảo rằng bạn đã tải xuống các công cụ xây dựng 28.0.3 trong Trình quản lý SDK của Android Studio.
alpere

@alpere Tôi đã phải cập nhật phiên bản Node lên v10.17.0 và gỡ bỏ các Plugin không sử dụng bắt đầu hoạt động (Sử dụng chủ đề màu xanh Ionic 3)
Prem Sanil

5

Một số thư viện của bạn nên sử dụng

com.android.support:support-v4:+

Tìm cái nào, với

gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath

Và thêm thư viện đó làm mô-đun nếu nó không sử dụng một phiên bản cụ thể trong bản cập nhật mới nhất của nó (Cũng nêu vấn đề trong thư viện đó!;))

Cảm ơn @avmatte!

CHỈNH SỬA: Bạn cũng có thể yêu cầu gradle để buộc phiên bản thư viện

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

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

4

Tôi đã gặp vấn đề tương tự ngày hôm qua. Nó bắt đầu một cách ngẫu nhiên, nhưng từ việc đọc xung quanh, có vẻ như nó liên quan đến một bản cập nhật như đã đề cập ở trên của @ cpro90. Tuy nhiên, tôi đã thử và không thể tìm thấy nơi thực hiện thay đổi thủ công cần thiết.

Cuối cùng, tôi xác định rằng sự cố là do plugin cordova-plugin-crosswalk-webview của tôi gây ra. Trên GitHub, tôi đã tìm thấy sự cố trên repro plugin sáng nay và nó đã có hơn 520 lượt xem vào bữa trưa.

@UNUMObile đã đề xuất nội dung sau trong build.gradletệp để buộc một phiên bản cũ hơn trên toàn cầu:

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

Điều này có hiệu quả ngay lập tức đối với tôi và có thể giúp những người khác với các plugin khác cũng phụ thuộc vào 'com.android.support:support-4:<28. Phiên bản 28 mới dường như là vấn đề.

Tôi hy vọng điều này sẽ giúp ai đó tiến lên phía trước.


4

Chỉ một số mẹo dành cho nhà phát triển Kotlin:

Nếu bạn làm theo các câu trả lời này ở đây, bạn chắc chắn rằng bạn không có support-v4thư viện trong dự án của mình nhưng bạn vẫn gặp lỗi này, vui lòng xem ktxthư viện.

Tôi chỉ phát hiện ra rằng tôi đang sử dụng 1.0.0-alpha1phiên bản mới nhất cho thư viện ktx và lỗi này xuất hiện; sau khi tôi thay đổi lại phiên bản 0.3, mọi thứ trở lại bình thường ngay bây giờ.


Không giải quyết được: androidx.fragment :gment-ktx: 0.3, khi tôi thay đổi thành '1.0.0-alpha1' cũng xảy ra sự cố.
Mahmood Ali

@MahmoodAli hãy xem các phụ thuộc khác? Tôi chỉ đăng tình huống của mình và Google cũng có thể có gói khác mắc lỗi tương tự.
Anthonyeef

@MahmoodAli cảm ơn vì liên kết, nhưng tôi nghĩ rằng hầu hết dự án bắt đầu sử dụng ktx lib trước khi androidx được công bố trong Google IO năm nay. Thật khó để tránh trộn ktx với thư viện hỗ trợ ... có lẽ di chuyển sang androidx nên là giải pháp cuối cùng cho loại ngoại lệ này.
Anthonyeef

4

Thêm các dòng sau vào nền tảng / android / build.gradle của bạn

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

nếu vẫn gặp sự cố, hãy thử chạy lệnh này:

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

3

Trong build.gradletệp của bạn, hãy thêm

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

Và trong project.propertiestệp của bạn thay đổi cordova.system.library.3thành cordova.system.library.3=com.android.support:support-v13:27.+.


2

Đối với người dùng Phonegap Build , như @catu đã đề cập trong một nhận xét, bạn có thể thử plugin này với mục đích ngăn chặn lỗi xây dựng do bao gồm các phiên bản khác nhau của thư viện hỗ trợ .


1

Chỉ cần khắc phục sự cố này bằng cách đặt các dòng mã sau vào tệp platform / android / app / build.gradle, ngay sau khối buildcript {}:

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

1

Tôi đã gặp sự cố tương tự sau khi cài đặt plugin cordova-plugin-file-opener2. Nó đã gây tiếng vang sau khi thực hiện: Tùy chọn 1: Cài đặt plugin cordova-android-support-gradle-release. plugin cordova thêm cordova-android-support-gradle-release --fetch


0

Một cách giải quyết khác có cùng giải pháp là tạo một hook. Nó ổn định (sau khi cài đặt lại nền tảng), bạn có thể cam kết nó và nó không yêu cầu thêm lại nền tảng.

% 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 trong cấu hình

% project% \ config.xml

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

Cài đặt phụ thuộc fs vào dự án của bạn:

npm i fs --save-dev

Chạy bản dựng:

cordova xây dựng Android


0

CÁCH GIẢI QUYẾT SIÊU ĐƠN GIẢN VÀ ĐÚNG CÁCH!

Chỉ cần cập nhật sdk và thêm 2 phiên bản android mới nhất ... và khởi động lại máy tính! Làm xong...

Bây giờ chúng ta có thời gian để nói về xe hơi và thể thao ...


0

Tôi đã gặp vấn đề tương tự và không có giải pháp nào trong số các giải pháp đưa ra phù hợp với tôi. Cài đặt phiên bản mới nhất của Android SDK Build-tools (27.0.3) đã giải quyết được sự cố của tôi.


0

Liên kết giải pháp

Điều này là do plugin compat. Xóa plugin đó nếu bạn có phiên bản cũ hơn (nhỏ hơn 1.2.0 ) và đặt cordova-android@6.3.0

plugin cordova rm cordova-plugin-compat --force

plugin cordova thêm cordova-plugin-compat@1.2.0

nền tảng cordova rm android

nền tảng cordova ionic thêm android@6.3.0

Làm việc trong trường hợp của tôi. Cảm ơn :)


0

cập nhật cho câu trả lời của @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 trong dir gốc

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

0

Tôi đã gặp phải vấn đề này với phản ứng gốc và nó được gây ra bởi các dòng sau trong của tôi android/app/build.gradle:

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

Vân vân...

Rõ ràng điều này + đã giải quyết thành phiên bản 17.0.0 mới đã phá vỡ bản dựng của tôi.
Thay đổi + thành 16.0.0 (hoặc 16.0.1 cho play-services-base) đã giải quyết được vấn đề của tôi


0

Vấn đề này đã giết chết tôi trong một tuần.

Cuối cùng thì tôi đã kết thúc android@6.4.0

Tôi đã thay đổi android/project.propertiesbằng cách thay đổi

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

Sự thay đổi đó cuối cùng đã giúp tôi thoát khỏi hố đen tối của thông báo lỗi ttcIndex.

Sau đó, tôi gặp lỗi này

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

Lỗi rõ ràng là do sự cố phiên bản Java. Sau đó tôi đã thay đổi android/build.gradlebằng sự thay đổi sau

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

Cũng lưu ý rằng tôi đã cordova-android-support-gradle-releasecài đặt plugin, nhưng không biết liệu tôi có cần nó hay không.


-1

Đó là một mục nhập trùng lặp trong giá trị.xml trong một thư mục có tên support-compat-28.0.0-alpha1.aar .

Bạn sẽ tìm thấy tệp này trên Windows tại \users\YOURUSERID\.gradle\caches\transforms-1\files-1.1

Khi vào bên trong thư mục đó, bạn phải đi sâu hơn một số cấp vào giá trị.xml .

Trong tệp đó, hãy tìm kiếm một phần tử <declare-styleable name="FontFamilyFont> .

Trong phần tử đó, hãy xóa BỐN dòng có android: trong đó.

Sau khi thực hiện thay đổi đó, tôi có thể tạo lại mà không có lỗi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.