可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
This question already has an answer here:
-
Running “cordova build android” - unable to find attribute android:fontVariationSettings and android:ttcIndex
24 answers
I get following error while running the command "ionic cordova build android --stacktrace" :
:generateDebugResources
:mergeDebugResources
:processDebugManifest
:processDebugResources
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:fontVariationSettings
FAILED
ERROR: In <declare-styleable> FontFamilyFont, unable to find attribute android:ttcIndex
I am using following tools on Window's:
Editor : VScode
Ionic: C:\Users\xyz>ionic -version
3.19.1
Npm as packagemanager
Project Properties:
target=android-26
cordova.system.library.1=com.google.android.gms:play-services-analytics:+
cordova.system.library.2=com.facebook.android:facebook-android-sdk:4.+
cordova.gradle.include.1=cordova-plugin-appsflyer-sdk/customerapp-cordovaAF.gradle
cordova.gradle.include.2=twitter-connect-plugin/customerapp-twitter.gradle
cordova.system.library.3=com.android.support:support-v4:26.+
cordova.system.library.4=com.android.support:appcompat-v7:26.+
cordova.system.library.5=com.android.support:support-v4:24.1.1+
cordova.system.library.6=com.android.support:support-v4:+
android.library.reference.1=CordovaLib
回答1:
I had to do the stuff of both the answers above:
In platforms/android/phonegap-plugin-barcodescanner:
Search for compile 'com.android.support:support-v4:+
and replace for compile 'com.android.support:support-v4:27+'
.
In platforms/android:
Search for cordova.system.library.2=com.android.support:support-v4:+
and replace for cordova.system.library.2=com.android.support:support-v4:27.1.0
.
Hope it helps.
回答2:
Mine required a similar fix as above only it was in the de.appplant.cordova.plugin.local-notification plugin. I changed ‘com.android.support:support-v4:+’ to ‘com.android.support:support-v4:23+’ and then removed and added the android platform and it built. However, I had an extra brace '}' in my build-extras.gradle that had to be removed also.
回答3:
found this on the ionic forum https://forum.ionicframework.com/t/android-build-broken-after-gradle-dependencies-update-execution-failed-for-task-processdebugresources-com-android-ide-common-process-processexception-failed-to-execute-aapt/109982/134 the suggestion that worked for me was "I got it working, my issue was in the cordova-plugin-file-opener2
.
Change com.android.support:support-v4:+
to com.android.support:support-v4:23+
in the plugin.xml
for the cordova-plugin-file-opener2
in the plugins folder and the node_modules folder.
Then do the same in the project.properties
in platforms/android
.
My plugin however was the background-geolocation and actually i dont believe i had to make a fix in the project.properties
for mine.
回答4:
In my case, problem was in barcode scanner plug in. Removing and adding this plug in did not work, after all get it worked by changing 'com.android.support:support-v4:+' to 'com.android.support:support-v4:27+' in file 'platform/android/phonegap-plugin-barcodescanner/{projectName}-barcodescanner'. What I did not understand is project was working yesterday perfectly, what happened in 24 hours and this problem occured...
回答5:
Had the same issue, what I did was following:
- Clear the build directory
- Add multiDexEnabled under android -> defaultConfig to the build.gradle file
- "your project\platforms\android\app\build.gradle"
- multiDexEnabled true
- Change dependencies for "com.android.support" within the build.gradle file
- com.android.support:support-v4:+ => com.android.support:support-v4:23+
- Go through the plugins folder and look in all "plugins.xml" and replace:
- com.android.support:support-v4:+ => com.android.support:support-v4:23+
- Change project.properties under "platforms\android\project.properties"
- cordova.system.library.4=com.android.support:support-v4:23+
- Run "ionic cordova run build"
Unable to merge dex
Clean install
- https://stackoverflow.com/a/24684622
Wrong Namespace / Version
- https://stackoverflow.com/a/49164846
.
android {
defaultConfig {
multiDexEnabled true
versionCode cdvVersionCode ?: new BigInteger("" + privateHelpers.extractIntFromManifest("versionCode"))
applicationId privateHelpers.extractStringFromManifest("package")
if (cdvMinSdkVersion != null) {
minSdkVersion cdvMinSdkVersion
}
}
}
回答6:
I did not find "com.android.support:support-v4:+" in the indicated paths of the topics I searched for, as I tried lastly in all folders and found in
platforms/android/phonegap-plugin-barcodescanner.gradle
in my case the plugin was the barcodescanner, in yours may be another.
then I followed the information and replaced with "'com.android.support:support-v4:27+" and it worked.
I was wondering if it was working perfectly yesterday, today I changed only one text and gave this error ... during the build I realized that some downloads occurred I believe that an update happened that caused this.
回答7:
I was having the same problem out of the blue yesterday. It started randomly but from reading around, it looks like it is to do with an update as mentioned above by @cpro90. However, I tried and could not find where to make the necessary manual change.
Eventually I identified that the problem was being caused by my cordova-plugin-crosswalk-webview plugin. On Github, I found the issue on the plugin repro this morning and it had over 520 views by lunch.
@UNUMObile suggested the following in the build.gradle file to force an earlier version globally:
configurations.all {
resolutionStrategy.force 'com.android.support:support-v4:24.0.0'
}
This worked immediately for me and may help others with other plugins that also have had their dependancy on 'com.android.support:support-4:<28. The new version 28 seems to be the issue.
Hope this helps someone move forward.
回答8:
Replacing 'com.android.support:support-v4:+' and 'com.android.support:support-v4:27+' with fixed versions in the plugin.xml didn't work for us - cordova crosswalk updated at least one support library to version 28.0.0-alpha1 though.
Forcing a fixed version of the support library for each dependency could solve the problem in the end.
configurations.all {
resolutionStrategy {
eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'com.android.support') {
details.useVersion "27.1.0"
}
}
}