angularjs - the - El comando Ionic Build Android falla con una excepción después de intentar agregar el complemento de calendario de ngCordova
ngcordova ionic (1)
Tu problema es que estás usando una versión obsoleta del plugin push. Desde su package.json
, está incluyendo https://github.com/rossmartin/PushPlugin.git, que es una rama no mantenida de un complemento obsoleto que no se ha actualizado en 2 años. Por lo tanto, si nos fijamos en su plugin.xml
, puede ver que incluye la Biblioteca de soporte de Android como un JAR para el proceso de compilación de Cordova basado en Ant-legacy heredado:
<source-file src="src/android/com/plugin/android-support-v13.jar" target-dir="libs/" />
Debe eliminar esta versión del complemento y reemplazarla con el cordova-plugin-push
equivalente actualizado , que usa Gradle para incluir la biblioteca de soporte :
<framework src="com.android.support:support-v13:23+" />
Tenga en cuenta que deberá compilar para Android API v23, por lo que debe tenerlo instalado a través del SDK Manager y usar v5 + de la plataforma Cordova Android ( cordova-android@5+
).
ACTUALIZAR
En el archivo build.gradle agrego estas líneas.
En dependencias agrega esta línea compila ''com.android.support:multidex:1.0.1''
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:+"
// SUB-PROJECT DEPENDENCIES END
compile ''com.android.support:multidex:1.0.1''
}
configuración predeterminada agrega esta línea multiDexEnabled true
defaultConfig {
versionCode cdvVersionCode ?: Integer.parseInt("" + privateHelpers.extractIntFromManifest("versionCode") + "0")
applicationId privateHelpers.extractStringFromManifest("package")
if (cdvMinSdkVersion != null) {
minSdkVersion cdvMinSdkVersion
}
multiDexEnabled true
}
Después de agregar estas líneas, recibí su error al referirme a este sitio web y lo resolví quitando platform / android / libs / Puedes ver que "android-support-v13.jar" borra ese archivo
todos los complementos que han sido instalados para el proyecto buscan el archivo plugin.xml y luego verifican cualquier línea que reefer a ese android-support-v13.jar y comenten o hagan lo que se indica arriba, gracias
Estoy trabajando iónico (1.7.15) en ubuntu.
Mi proyecto funciona bien hasta que intento implementar el plugin de calendario . Después de instalar este complemento en mi proyecto e intento compilarlo con el comando ionic build android
pero recibo el siguiente error.
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
Espero que el error anterior ocurra debido a un plugin múltiple en mi proyecto ¿hay alguna solución? Encontré este error relacionado con multidex
desde aquí .
Lo que he intentado:
He intentado actualizar mi SDK de Android.
Al usar esta pregunta de desbordamiento de pila no se pudieron resolver todas las dependencias para la configuración '': _armv7DebugCompile'' lo he hecho todo después de que recibo el error anterior.
Aquí está mi archivo package.json
{
"name": "app",
"version": "1.1.1",
"description": "app: An Ionic project",
"dependencies": {
"gulp": "^3.5.6",
"gulp-sass": "^2.0.4",
"gulp-concat": "^2.2.0",
"gulp-minify-css": "^0.3.0",
"gulp-rename": "^1.2.0"
},
"devDependencies": {
"bower": "^1.3.3",
"gulp-util": "^2.2.14",
"shelljs": "^0.3.0"
},
"cordovaPlugins": [
"cordova-plugin-device",
"cordova-plugin-console",
"cordova-plugin-whitelist",
"cordova-plugin-splashscreen",
"cordova-plugin-statusbar",
"ionic-plugin-keyboard",
{
"locator": "https://github.com/rossmartin/PushPlugin.git",
"id": "com.phonegap.plugins.PushPlugin"
}
],
"cordovaPlatforms": [
"android"
]
}
Aquí está mi archivo fetch.json
{
"cordova-plugin-device": {
"source": {
"type": "registry",
"id": "cordova-plugin-device@~1.1.1"
},
"is_top_level": true,
"variables": {}
},
"cordova-plugin-console": {
"source": {
"type": "registry",
"id": "cordova-plugin-console@~1.0.2"
},
"is_top_level": true,
"variables": {}
},
"cordova-plugin-whitelist": {
"source": {
"type": "registry",
"id": "cordova-plugin-whitelist"
},
"is_top_level": true,
"variables": {}
},
"cordova-plugin-splashscreen": {
"source": {
"type": "registry",
"id": "cordova-plugin-splashscreen"
},
"is_top_level": true,
"variables": {}
},
"cordova-plugin-statusbar": {
"source": {
"type": "registry",
"id": "cordova-plugin-statusbar@~2.1.0"
},
"is_top_level": true,
"variables": {}
},
"ionic-plugin-keyboard": {
"source": {
"type": "registry",
"id": "ionic-plugin-keyboard"
},
"is_top_level": true,
"variables": {}
},
"cordova-plugin-camera": {
"source": {
"type": "registry",
"id": "cordova-plugin-camera"
},
"is_top_level": true,
"variables": {}
},
"phonegap-plugin-push": {
"source": {
"type": "registry",
"id": "phonegap-plugin-push"
},
"is_top_level": true,
"variables": {}
},
"com.phonegap.plugins.PushPlugin": {
"source": {
"type": "git",
"url": "https://github.com/phonegap-build/PushPlugin.git",
"subdir": "."
},
"is_top_level": true,
"variables": {}
},
"cordova-plugin-datepicker": {
"source": {
"type": "git",
"url": "https://github.com/VitaliiBlagodir/cordova-plugin-datepicker.git",
"subdir": "."
},
"is_top_level": true,
"variables": {}
},
"cordova-plugin-calendar": {
"source": {
"type": "registry",
"id": "cordova-plugin-calendar"
},
"is_top_level": true,
"variables": {}
},
"cordova-plugin-crosswalk-webview": {
"source": {
"type": "registry",
"id": "cordova-plugin-crosswalk-webview"
},
"is_top_level": true,
"variables": {}
}
}
No tengo idea de qué salió mal, por favor, que alguien me ayude.