Cita:
Empezado por jhonalone
Muchísimas gracias por tu esfuerzo turbopascual5.0
Por cierto, ya hace unos añitos del 5.0 y del 5.1 que creo recordar que era la versión en castellano.
Sin embargo, hay algunas cosas que no me quedan claras. (No quisiera armar un un "estropicio" y tener que desinstalar e instalar de nuevo todo el sistema y volver a personalizar el IDE)
A ver si he entendido.
1.- Borro en Delphi la versión 25.2.5 32bit en el Sdk Versions para Android NO el de windows.
2.- Con el SDKManager borro todas las versiones menos la más moderna (23 en tu caso 26 ó 28 en el mío)
3.- Tengo Android Studio instalado, pero no he entendido para qué se usa.
4.- Voy a Delphi y con el botón Add genero una nueva versión.
5.- Pongo las rutas SDK y NDK (¿iguales que las de Android Studio? ¿cómo las localizo?)
6.- Delphi rellena todas las rutas.
7.- Modifico el AndroidManifest.template.xml, sólo android:targetSdkVersion="XX" (Donde XX es la versión que he dejado en el SDKManager)
8.- Al compilar la App, Delphi modifica el %minSdkVersion% por 14 en el AndroidManifest.template.xml.
9.- Ahora subimos la App a Play Store y Google te lo permite.
10.- Al instalarla, tengo que autorizar los permisos "peligrosos", que son los mismos que los tuyos, (uso de la SD) en Google Play Developers.
HE ENTENDIDO que esto mismo no te funcionó con la API 26.
Lo que me extraña es que te dejara subir la App con API 23, pues a mí me dice que tiene que ser mínimo 26.
Lo de la "chapucilla" no me ha quedado muy claro. Necesitaría una pequeña aclaración. Gracias.
Por favor rectifícame lo que corresponda.
Muchas gracias de nuevo por el gran esfuerzo que has hecho para explicarme el proceso.
Cuando me des el visto bueno me pondré manos a la obra.
Un saludo cordial.
|
je, je, sí hace unos años de la 5.0, ... que tiempos aquellos, cuando era joven, cuando los dinosaurios poblaban la tierra........
Vamos por faena:
1.- Borro en Delphi la versión 25.2.5 32bit en el Sdk Versions para Android NO el de windows.
Sí , lo borras en delphi, tools, options, sdk manager.
Para no hacer estropicios : abajo veras un botón export, te grabas un fichero (es un fichero texto) con la información de las rutas. Si la cosa se pone fea, usas import y andando.
2.- Con el SDKManager borro todas las versiones menos la más moderna (23 en tu caso 26 ó 28 en el mío)
Correcto. Solo dejas la que vas a usar.
3.- Tengo Android Studio instalado, pero no he entendido para qué se usa.
Para compilar una aplicación android se nesitan unas librerías, el SDK y el NDK. No son más que dos carpetas, con subcarpetas y ficheros. Y un gestor para actualizar los paquetes, el sdk manager. Estos paquetes los proporciona Google.
En la instalación de Delphi se instalan el SDK y el NDK, y te crea dos accesos, uno al sdk manager y otro al avd manager (para el emulador).
En la instalación de delphi ya te dice que si tienes el sdk y ndk que no hace falta que los instales.
Las versiones de NDK las puedes encontrar en
https://developer.android.com/ndk/downloads/ es un simple zip, que contiene las carpetas.
Antes para instalar el SDK te podias bajar un ejecutable, y te creaba las carpetas y el acceso a sdk manager.
Ahora el ejecutable no está disponible, puedes bajar el SDK e instalarlo a mano (lo miré pero lo ví lioso), o más fácil, instalar android studio, y él se encarga de instalarte el SDK. Como te he dicho antes el SDK no deja de ser unas carpetas, por lo que si embarcadero las instala en:
C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\android-sdk-windows
al instalar android manager le puedes decir donde las quieres. Yo le dije que en disco D. Es decir puedes tener el sdk y ndk en varios sitios.
¿que es android studio? Pues el IDE oficial de google para programar aplicaciones android (creo que en java, no estoy seguro).
El caso es que el sdk manager que instala delphi parece un poco viejuno, android sdk tools tiene la version 25.2.5 y a mi nunca me dice que haya otra , y en sdk manager de studio descarga la 26.1.1.
4.- Voy a Delphi y con el botón Add genero una nueva versión.
Correcto.
5.- Pongo las rutas SDK y NDK (¿iguales que las de Android Studio? ¿cómo las localizo?)
C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\
Y dentro de esa carpeta veras la carpeta SDK y la NDK, solo has de decirle que son esas carpetas.
En teoría, porque al fin y al cabo solo es decirle donde estan las carpetas, tambien puedes apuntar a la carpeta de un ndk bajado del enlace que te he dado y apuntar el sdk a la carpeta donde te la instala android studio.
Pues si le dices que el ndk está en la carpeta donde descomprimiste el archivo bajado de la web no reconoce que ahí haya un NDK, parece que sea un bug.
En general, solo es decirle donde estan las carpetas, pero yo apuntando a otras que no sean las que hay en C:\Users\Public\Documents\Embarcadero\Studio\19.0\PlatformSDKs\ solo he tenido problemas
6.- Delphi rellena todas las rutas.
Sí, rellena todos los datos y te dirá que la api es la 26.
7.- Modifico el AndroidManifest.template.xml, sólo android:targetSdkVersion="XX" (Donde XX es la versión que he dejado en el SDKManager)
Sí, porque hay un bug y si dejas
"%targetSdkVersion%" siempre pone "14", así que hay forzarlo.
8.- Al compilar la App, Delphi modifica el %minSdkVersion% por 14 en el AndroidManifest.template.xml.
Sí , correcto, lo puedes comprobar mirando el manifest que crea. Lo cierto es que tambien podrías forzarlo poniendo "14", pero el resultado es el mismo.
9.- Ahora subimos la App a Play Store y Google te lo permite.
sí, correcto
10.- Al instalarla, tengo que autorizar los permisos "peligrosos", que son los mismos que los tuyos, (uso de la SD) en Google Play Developers.
Depende de la versión de android que corra en el móbil, en un S4 no lo he de autorizar expresamente, en un S6 sí.
Este es un tema que he de mirarme en detalle, porque las aplicaciones te piden que autorices esos permisos , y he visto otras que te dicen que lo has de hacer. Parece ser que se puede consultar el estado y en consecuencia indicarle al usuario que lo haga.
Con la api 26 la aplicación se para, he mirado que algunos desarrrolladores han tenido problemas con sqllite, y mi aplicación hace uso....
Lo de que me permita subir con la 23:
A partir de agosto 2018........ las aplicaciones nuevas api 26 , las que ya estuviesen en el play estaran obligadas a estar actualizadas en noviembre.
Yo la tenía funcionando tan estupendamente en api14, pero como estaba cansado de ver el aviso al poner una actualización tuve la luminosa idea de actualizarlo con api 26 sin ver por la web los posibles problemas, no funcionó, así que la bajé de nuevo a api 14 y sorpresa!! el sr google me dice que nanai, que si la he subido a 26 ahora estoy obligado a mínimo api 23.
Y así estoy, en un S4 corre bien, en win corre bien, en un S6 me da un error de división por cero que estoy intentando encontrar donde se produce. Los S4 y S6 no tienen SD, grabo algunos pdf en \assets\internal, y tengo errores en las rutas de recuperación de los ficheros que antes no tenía. Un append en una base de datos azure (uso unidac) se hace sin problema en win y en android un campo simpre me lo toma como null (es un campo key no admite null) y la aplicación da error, aunque explicitamente le ponga por código que es un valor integer. Un calvario....... por zarpas.
Lamento tener que decirtelo, que tengas suerte que la vas a necesitar.
Un saludo , cualquier cosa no dudes en plantearla.