PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV Mobile 2024 → Qui danse le Java ?
Qui danse le Java ?
Started by Pascal BOULESTEIX, Mar., 31 2022 7:53 AM - 11 replies
Registered member
964 messages
Popularité : +16 (20 votes)
Posted on March, 31 2022 - 7:53 AM
Salut à tous
J'ai créé une procédure Java (code récupéré sur www) qui doit retourner les coordonnées de la position.
Pourquoi cette procédure alors que WM est outillé pour récupérer les coordonnées ? Parce que sous Android 12, j'ai des problème et je veux savoir, ce que Java retourne comme info.

Avec le code suivant :

Dans la fenêtre do projet
Procedure MaFenêtre()
grLat est un réel
grLong est un réel

(grLat, grLong) =gJAVA_GETPOSITION()
Info(grLat, grLong)


Dans la procédure :
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.Menu;
public static void gJAVA_GetPosition()
{
// Get the location manager
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
Criteria criteria = new Criteria();
String bestProvider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(bestProvider);
Double lat,lon;
try {
lat = location.getLatitude ();
lon = location.getLongitude ();
return new LatLng(lat, lon);
}
catch (NullPointerException e){
e.printStackTrace();
return null;
}
}


quand je compile, j'obtiens les erreurs suivantes que je ne sais interpréter :

Echec de la création de l'application Android .


Ligne de commande : "C:\Program Files\Java\jdk-10.0.2\bin\java.exe" -Duser.dir="D:\WINDEV26\TEST_JAVA_GETPOSITION\Android\gen" "-Dorg.gradle.appname=D:\WINDEV26\TEST_JAVA_GETPOSITION\Android\gen" -classpath "C:\PC SOFT\WINDEV Mobile 26\Personnel\Android\Gradle\lib\gradle-launcher-5.4.1.jar" org.gradle.launcher.GradleMain assembleRelease -b "D:\WINDEV26\TEST_JAVA_GETPOSITION\Android\gen\build.gradle"


Erreur retournée :
:compileReleaseJavaWithJavac
D:\WINDEV26\TEST_JAVA_GETPOSITION\Android\gen\src\com\masociete\test_java_getposition\wdgen\GWDCPCOL_JAVA.java:96: error: cannot find symbol
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
                                                                     ^
  symbol:   variable LOCATION_SERVICE
  location: class GWDCPCOL_JAVA
D:\WINDEV26\TEST_JAVA_GETPOSITION\Android\gen\src\com\masociete\test_java_getposition\wdgen\GWDCPCOL_JAVA.java:97: error: cannot find symbol
Criteria criteria = new Criteria();
^
  symbol:   class Criteria
  location: class GWDCPCOL_JAVA
D:\WINDEV26\TEST_JAVA_GETPOSITION\Android\gen\src\com\masociete\test_java_getposition\wdgen\GWDCPCOL_JAVA.java:97: error: cannot find symbol
Criteria criteria = new Criteria();
                        ^
  symbol:   class Criteria
  location: class GWDCPCOL_JAVA
D:\WINDEV26\TEST_JAVA_GETPOSITION\Android\gen\src\com\masociete\test_java_getposition\wdgen\GWDCPCOL_JAVA.java:104: error: incompatible types: unexpected return value
return new LatLng(lat, lon);
       ^
D:\WINDEV26\TEST_JAVA_GETPOSITION\Android\gen\src\com\masociete\test_java_getposition\wdgen\GWDCPCOL_JAVA.java:104: error: cannot find symbol
return new LatLng(lat, lon);
           ^
  symbol:   class LatLng
  location: class GWDCPCOL_JAVA
D:\WINDEV26\TEST_JAVA_GETPOSITION\Android\gen\src\com\masociete\test_java_getposition\wdgen\GWDCPCOL_JAVA.java:108: error: incompatible types: unexpected return value
return null;
       ^
D:\WINDEV26\TEST_JAVA_GETPOSITION\Android\gen\src\com\masociete\test_java_getposition\wdgen\GWDFFEN_POSITION.java:96: error: cannot find symbol
{ WDTuple tuple = new WDTuple(GWDCPCOL_JAVA.gJAVA_GETPOSITION());vWD_grLat.setValeur(tuple.get(1));vWD_grLong.setValeur(tuple.get(2)); }
                                           ^
  symbol:   method gJAVA_GETPOSITION()
  location: class GWDCPCOL_JAVA
Note: D:\WINDEV26\TEST_JAVA_GETPOSITION\Android\gen\src\com\masociete\test_java_getposition\wdgen\GWDFFEN_POSITION.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
7 errors

Task :compileReleaseJavaWithJavac FAILED
Task :mergeReleaseNativeLibs
Task :mergeExtDexRelease


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileReleaseJavaWithJavac'.
Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.4.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 55s
20 actionable tasks: 20 executed
Posted on March, 31 2022 - 9:54 AM
Salut,

Dans l'ordre de tes erreurs :

- (LocationManager) getApplicationContext().getSystemService(Context.LOCATION_SERVICE)

- ajouter l'import android.location.Criteria

- pour toutes les erreurs de retour tu dois changer le void (qui par définition spécifie que ta fonction ne doit pas retourner de valeur) du nom de ta fonction par le type de retour souhaité. Attention WM ne supporte que les types de retour simple en JAVA (int, string, long...)

Je te conseille de renvoyer une chaine construite avec ta lat long plutôt que de renvoyer un objet JAVA LatLng.

Cordialement :)
Posted on May, 23 2022 - 6:24 PM
Bonjour,
avez-vous pu solutionner votre pb ? je pense que ce n'est pas votre code qui est en cause, mais le compilateur (enfin la création de l'application Android lors de la génération). J'ai le même problème avec un exemple pc soft (Android explorer) et j'ai aussi fait bizarre, certaines applis qui se génèrent et s'installent, et d'autres non et pourtant c'est sur le même appareil mobile.. Je cherche la case à décocher pour passer dans tous les cas.. Avant en 18 il suffisait de vider le répertoire user/app data/etc.. mais là ca marche plus..
Si qqun a une solution. Merci par avance
Registered member
794 messages
Popularité : +40 (42 votes)
Posted on May, 24 2022 - 12:17 PM
Bonjour. Le code n'est pas en cause ?

1) Vous définissez la fonction comme

"public static void gJAVA_GetPosition()"

alors il ne peut rien retourner et ensuite vous essayez de retourner

"return new LatLng(lat, lon) ;"

Qu'est-ce que LatLng et que retourne-t-il ?

Salutations

Ruben
Registered member
964 messages
Popularité : +16 (20 votes)
Posted on May, 25 2022 - 8:09 AM
Bonjour à tous
J'ai abandonné cette proc java que je comptais utiliser pour vérifier les coordonnées de la position.
Je l'ai abandonné quand j'ai conclu (par un autre moyen) que mon problème de précision de localisation venait d'un bug avec WM27 et Android 12.
Un incident est ouvert chez PCSoft qui a reconnu le problème.

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Posted on May, 25 2022 - 9:33 AM
Bonjour,

As tu testé l'update 3? est ce que cela corrige le problème de GPSAuto ?

Cordialement
Registered member
964 messages
Popularité : +16 (20 votes)
Posted on May, 25 2022 - 4:03 PM
Salut
Non, l'Update 3 ne corrige pas GPSAuto. Dans l'attente, je teste si Android > 11 et dans ce cas GPSSatellite ; ça fonctionne mais la batterie en prend un coup !

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Posted on May, 25 2022 - 4:33 PM
Oui c'est quand même dingue que ce genre de problème ne soit pas encore solutionné alors qu'Android13 sort déjà en bêta!
Ça fait un an qu'Android 12 est sorti et on a de nombreux bugs.
Le pire c'est que de vieilles applications développées avec des produits gratuits n'ont aucun souci sous Android 12 sans même avoir été modifiée!
Posted on May, 26 2022 - 1:09 PM
Bonjour,

j'ai dit "je pense que"..

J'ai le même code erreur ":mergeReleaseNativeLibs" en compilant des exemples livrés en standard par PCSOFT d'où ma conclusion hâtive que le code n'est peut-être pas la cause directe..


Le support m'a proposé la désinstallation de windev mobile... mais ca n'a pas fonctionné
Reste le formatage du pc et la réinstallation de windows peut-être mais là j'hésite un peu !!

Apparemment vous avez tous une générateur WM27 qui fonctionne sur les exemples livrés avec PC SOFT ou avec vos propres créations.. Tant mieux pour vous. N'ayant pas touché à mon pc ni à mes appareils mobiles depuis la dernière génération, je me dis que dans quelques jours il y aura peut-être d'autres demandeurs...

Il eut été préférable de me signaler que le texte ":mergeReleaseNativeLibs" n'est pas significatif de l'erreur rencontrée car c'est un texte générique et qu'il faut plutôt utiliser le texte qui se trouve après pour trouver la cause..

Si quelqu'un a une solution ou une piste pour le message ci-dessous, je suis preneur.. (exemple ANDROID GPS, je n'ai pas touché au code, j'utilise les outils téléchargés automatiquement)
Le téléphone est sur la version 10 Android et la tablette en version 11


Echec de la création de l'application Android <N:\DEVETHEQUE\WinMob 27\Mes Exemples\Android GPS\Exe\Android GPS.apk>.


Ligne de commande : "E:\WINMOB 27\Personnel\Android\OpenJDK\bin\java.exe" -Duser.dir="N:\DEVETHEQUE\WinMob 27\Mes Exemples\Android GPS\Android\gen" "-Dorg.gradle.appname=N:\DEVETHEQUE\WinMob 27\Mes Exemples\Android GPS\Android\gen" -classpath "E:\WINMOB 27\Personnel\Android\Gradle\lib\gradle-launcher-7.0.2.jar" org.gradle.launcher.GradleMain assembleRelease -b "N:\DEVETHEQUE\WinMob 27\Mes Exemples\Android GPS\Android\gen\build.gradle"


Erreur retournée :
:mergeReleaseNativeLibs FAILED
> Task :processReleaseManifestForPackage

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':mergeReleaseNativeLibs'.
Could not resolve all files for configuration ':releaseRuntimeClasspath'.

> Failed to transform annotation-1.1.0.jar (androidx.annotation:annotation:1.1.0) to match attributes {artifactType=android-jni, org.gradle.category=library, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-runtime}.
> Execution failed for ExtractJniTransform: C:\Users\JJLM\.gradle\caches\modules-2\files-2.1\androidx.annotation\annotation\1.1.0\e3a6fb2f40e3a3842e6b7472628ba4ce416ea4c8\annotation-1.1.0.jar.
> zip END header not found

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/7.0.2/userguide/command_line_interface.html…

BUILD FAILED in 16s
13 actionable tasks: 8 executed, 5 from cache
Posted on May, 26 2022 - 2:20 PM
Trouvé...

sur https://stackoverflow.com/questions/45138391/failed-to-transform-file-45907c80e09917e1b776adf038505958-to-match-attributes

Nettoyer le répertoire C:\Users\nomuser\.gradle\caches de tout ce qui s'y trouve.. (faire un svg avant au cas où)

For the solution, you can clear your project cache (C:\Users\<username>\.gradle\caches\transforms-1 ) and rebuild your project again and it will work fine. The gradle needs some artifacts to build which are stored in the cache memory. So if the gradle fails to build, the cache can be cleared which will prompt fresh downloading. You can be offline as long as all the artifacts you need have been downloaded in Gradle's cache (so don't delete the cache folder when offline!)

apparemment c'est reparti pour générer des applications Android.. Si ca fonctionne je confirmerais dans quelques jours.
Registered member
794 messages
Popularité : +40 (42 votes)
Posted on May, 28 2022 - 8:33 PM
Bonjour, je suis sûr que vider le cache de Gradl résoudra le problème, mais dans votre cas, je pense que le problème était un téléchargement corrompu de "annotation-1.1.0.jar" car il dit "zip END header not found" et le fichier jar est vraiment un fichier zip.

Rubén
Posted on May, 29 2022 - 1:11 PM
Bonjour,

je ne sais pas ce que j'ai pu télécharger ou pas, concernant le Gradle que j'ai installé en Décembre (téléchargement auto) et qui fonctionnait correctement jusqu'à ce que....

Tout est-il que le fait d'avoir nettoyé le répertoire .gradle a effectivement solutionné le pb.
Ayant en parallèle désinstallé WM27 et tout réinstallé, j'ai également procédé à un rechargement complet des outils auto de PC SOFT.

Cdlt