android - plugin - admob phonegap build
Cordova no crea AndroidManifest.xml (7)
- En primer lugar, asegúrese de que el complemento sea compatible con Android 7.0.0+
- Elimine todas estas carpetas o archivos: [''AndroidManifest.xml'', ''libs'', ''res''] en el directorio de plataformas / root de Android.
Cordova usa estos archivos para determinar si su proyecto es un proyecto de eclipse. Si existen, su proyecto será tratado como un proyecto de eclipse con la estructura de ruta anterior. Algunos complementos pueden crear estos archivos / carpetas en su carpeta de Android.
Estoy trabajando en Cordova y AndroidStudio para crear aplicaciones de Android / iOS. Todo funcionaba bien hasta que actualicé mi Cordova a 8 ayer. También actualicé Node a la última. Cuando creo un proyecto Cordova y añado la plataforma Android. Produce una estructura de directorio totalmente diferente. No puedo ver las carpetas de assets
, res
y src
en el directorio de la plataforma del proyecto D:/testApp1/platforms/android
. Más importante aún, el directorio anterior carece de AndroidManifest.xml
, lo que está causando que el complemento admob
falle al agregarse.
Aquí está el error que obtengo al agregar el complemento:
Error al instalar ''cordova-plugin-admobpro'': Error: ENOENT: no existe tal archivo o directorio, abra ''D: / Projects / testApp1 / platform / android / AndroidManifest.xml'' en Object.fs.openSync (fs.js: 646 : 18) en Object.fs.readFileSync (fs.js: 551: 33) en Object.parseElementtreeSync (D: / Projects / testApp1 / platform / android / cordova / node_modules / cordova-common / src / util / xxml helpers. js: 180: 27) en el nuevo AndroidManifest (D: / Projects / testApp1 / Plataformas / android / cordova / lib / AndroidManifest.js: 29: 20) en AndroidProject.getPackageName (D: / Projects / testApp1 / Platforms / android / Cordova / lib / AndroidProject.js: 99: 12) en Api.addPlugin (D: / Projects / testApp1 / platform / android / cordova / Api.js: 223: 57) en handleInstall (C: / Users / Rao / AppData / Roaming / npm / node_modules / cordova / node_modules / cordova-lib / src / plugman / install.js: 594: 10) en C: / Users / Rao / AppData / Roaming / npm / node_modules / cordova / node_modules / cordova-lib / src / plugman / install.js: 357: 28 at _fulfilled (C: / Users / Rao / AppData / Roaming / npm / node_modules / cordova / node_modules / cordova-lib / node_ modules / q / q.js: 787: 54) en self.promiseDispatch.done (C: / Users / Rao / AppData / Roaming / npm / node_modules / cordova / node_modules / cordova-lib / node_modules / q / q.js: 816: 30)
¿Puede ayudarme alguien, por favor?
Cordova CLI v8.0 usará [email protected]
de forma predeterminada.
Como la mayoría de los complementos de cordova no son compatibles con [email protected]
todavía, también puede intentar usar el anterior especificando la versión:
cordova platform add [email protected]
O, si se siente cómodo de usar [email protected]
, también puede esperar una actualización de cordova-plugi-admobpro
para respaldar a [email protected]
, próximamente.
Edición final:
cordova-android 7.1.2 está fuera, debería solucionar la mayoría de este tipo de problemas.
editar:
A medida que las personas sigan votando la respuesta, daré más detalles sobre el problema.
El problema no es realmente la escritura del complemento en AndroidManifest.xml
o en config.xml
. Es cierto que la ubicación ha cambiado y los complementos deben actualizar la ruta, pero no es obligatorio y Cordova se encarga de las nuevas rutas.
El problema es que algunos complementos utilizan la etiqueta de source-file
para cosas que no son código fuente. (es decir, usarlo para copiar imágenes en lugar de usar etiquetas de resource-file
) Eso crea una carpeta de resolución (o lib) que confunde a Cordova, haciéndolo creer que es un proyecto antiguo de Eclipse, mientras que en realidad es un proyecto de Android Studio, y busca el archivos en las ubicaciones antiguas en lugar de buscar en las nuevas ubicaciones.
Esto ha sido parcheado en cordova-android y se solucionará en la próxima versión. La solución es buscar el complemento que usa la etiqueta de source-file
y actualizarlo para usar resource-file
etiqueta de resource-file
ANTIGUA RESPUESTA:
Ahora está en la app/src/main/AndroidManifest.xml
.
Si el complemento está escribiendo en él, debe actualizarse para escribir en el lugar correcto.
Lee la publicación del blog de Córdova-Android 7.0.0.
El problema parece ser cuando intentas compilar para su lanzamiento al mismo tiempo que ejecutas la aplicación localmente. Detengo la aplicación en localhost y luego compilo para su lanzamiento. Problema resuelto.
En el archivo config.xml
del proyecto cordova, bajo la etiqueta xml <platform name="android">
, agregue la siguiente etiqueta:
<resource-file src="platforms/android/app/src/main/AndroidManifest.xml" target="AndroidManifest.xml" />
Mi problema fue un complemento personalizado que creaba la carpeta libs en plataformas / android. Eso hizo que Cordova creyera que mi proyecto era un proyecto de eclipse y, por lo tanto, estaba buscando el AndroidManifest en el lugar antiguo.
Si actualizas a Cordova Android +7.0.0, asegúrate de que las plataformas / android no contengan los siguientes elementos:
- AndroidManifest.xml
- libs
- res
este link ayudó
Simplemente arreglé el error copiando AndroidManifest.xml en
plataformas / android / app / src / main /
a
plataformas / android /