nikita36078 / J2ME-Loader

A J2ME emulator for Android.
Apache License 2.0
1.72k stars 195 forks source link

Unable to Install Offline JAD from 3rd Party File Managers. #604

Closed oatmeal01 closed 4 years ago

oatmeal01 commented 4 years ago

Installing Offline JAD file through 3rd Party File Manager

- Failed to install. (Watch Video)

Error Log:

D/ru.playsoftware.j2meloader.d.e( 3706): doInBackground$ pathToJar=/data/data/ru.playsoftware.j2meloader/tmp_uri/tmp.jad I/OpenGLRenderer( 3706): Initialized EGL, version 1.4 W/System.err( 3706): ru.playsoftware.j2meloader.d.b: Can't download jar (Download logs.txt)

The jar and jad are in the same folder with the same file name. I also edited the midlet jar url from jad.

Offline JAD Installer: Download - Can only be installed via J2ME Loader Built-In Filepicker.

Online JAD Installer: Download - Can be installed via J2ME Loader Filepicker/any third party file manager. (Download logs.txt)

...

Installing Offline JAD file through J2ME Loader file manager

- Successfully installed. (Watch Video)

Success Log:

D/ru.playsoftware.j2meloader.d.e(29452): doInBackground$ pathToJar=/storage/MicroSD/J2ME Archive/Apps/Opera Mini [4.5] Multi.jad D/OpenGLRenderer(29452): endAllStagingAnimators on 0xb8d82730 (RippleDrawable) with handle 0xb8db7ab0 D/ru.playsoftware.j2meloader.d.e(29452): appConverted=/storage/emulated/0/J2ME-Loader/converted/Opera Mini 4 (Download logs.txt)

ahmadprayoxxsy commented 4 years ago

This is not a "j2me loader" app error. maybe you haven't (storage permission) in the xploler app.

oatmeal01 commented 4 years ago

This is not a "j2me loader" app error. maybe you haven't (storage permission) in the xploler app.

I got also this error using built-in file manager. I can only install offline JAD via J2me loader filemanager.

Installation via 3rd party filemanager only works by using Online Jad installer.

Offline Jad installation via 3rd party file manager is not working on my device. I'll check other device if the result is the same.

Tested filemanagers: Asus built-in file man, es explore, x-plore

@ahmadprayoxxsy Please test it if it happens to your device too.

ahmadprayoxxsy commented 4 years ago

"J2me loader" takes a sample file from "zarchiver". So in the "zarchiver" file (jad) app you can also install it.

oatmeal01 commented 4 years ago

"J2me loader" takes a sample file from "zarchiver". So in the "zarchiver" file (jad) app you can also install it.

same issue can't install offline jad from zarchiver. but when installing online jad it works fine.

Update: Same issue with other device, can't install offline jad using third party/built-in file manager.

ahmadprayoxxsy commented 4 years ago

Screenshot_20191208-112628_MT Manager Add it:MIDlet-Jar-URL: file:///sdcard/file.jar

oatmeal01 commented 4 years ago

Try to test this two files: MIDlet-Jar-URL: Opera Mini 4 [4.5] Multi.jar Offline JAD - consist of both jad and the jar file. Can only be installed using J2ME filebrowser. Third party filemanager won't work.

`MIDlet-Jar-URL: MIDlet-Jar-URL: http://m.opera.com/dl/kiYPo-MC0QppKxMe-5MARS5rLjAAZGVmYXVsdF8yMDEyLnBuZw==/mini.jar?vid=0x29b172b5271c1c80 Online Installer - install online, can be installed via j2me file browser and 3rd party file manager.

oatmeal01 commented 4 years ago

Screenshot_20191208-112628_MT Manager Add it:MIDlet-Jar-URL: file:///sdcard/file.jar

ill try this one, thanks.

Update: it didn't work too. i'll stick with J2ME filebrowser for now until there's a fix for Offline Jad installation for 3rd party file browsers. Screenshot_2019-12-08-12-53-27

ahmadprayoxxsy commented 4 years ago

Let me see your "jad" text file tmp-cam-6511905339378726683 tmp-cam-5044193554683134018

woesss commented 4 years ago

If you have a local JAR, you can install it. Otherwise, the JAD MUST have an absolute (full) address in the MIDlet-Jar-URL. When the JAD and JAR are in the same folder and the MIDlet-Jar-URL is specified as the name of the JAR file, installation from the JAD is not possible, because the third party file manager does not transmit file location information to the emulator. For this, we must say thanks to Google - they believe that direct access to files in Android is not needed at all and forbade transferring file paths between applications.

oatmeal01 commented 4 years ago

If you have a local JAR, you can install it. Otherwise, the JAD MUST have an absolute (full) address in the MIDlet-Jar-URL. When the JAD and JAR are in the same folder and the MIDlet-Jar-URL is specified as the name of the JAR file, installation from the JAD is not possible, because the file manager does not transmit file location information to the emulator. For this, we must say thanks to Google - they believe that direct access to files in Android is not needed at all.

Offline Jad installation only works with J2ME File Browser. (both jar and jad inside folder and midlet url specified as the name of the jar file.)

The only problem is i can't make it work outside the app.

ahmadprayoxxsy commented 4 years ago

No Spaces in jar / jar file. Incorrect: a b c d.jad / a b c d.jar Correct: abcd.jad / abcd.jar

oatmeal01 commented 4 years ago

No Spaces in jar / jar file. Incorrect: a b c d.jad / a b c d.jar Correct: abcd.jad / abcd.jar

Still no luck, doesn't seems to fix the problem. I can install it through j2me loader file manager but not from other 3rd party filemanager.

oatmeal01 commented 4 years ago

Video - Offline Jad Installation through 3rd Party File Manager - Offline Jad Installation through J2ME Filemanager

ahmadprayoxxsy commented 4 years ago

Video

There are no spaces in the file name.

woesss commented 4 years ago

Why do you need a JAD when you have a JAR? The emulator does not need it. And only in rare cases, installation via JAD is required by the java application itself, if it uses some parameters that are specified only in this JAD and are absent in the jar's manifest.
If the application works fine after installing from the JAR, then the JAD is not needed at all.

oatmeal01 commented 4 years ago

Why do you need a JAD when you have a JAR? The emulator does not need it. And only in rare cases, installation via JAD is required by the java application itself, if it uses some parameters that are specified only in this JAD and are absent in the jar's manifest. If the application works fine after installing from the JAR, then the JAD is not needed at all.

To install the signed version of Opera you need Jad.

Some games won't also work without installing through Jad, yes you can install the local Jar file but the game won't open (example: Blood+.zip.

To also make some demo games totally full, you need the Jad file.

ahmadprayoxxsy commented 4 years ago

Take a look at this video. https://drive.google.com/file/d/1CneY3-o355dc8LRDu-HGCxoGDePhZone/view?usp=drivesdk

oatmeal01 commented 4 years ago

Take a look at this video. https://drive.google.com/file/d/1CneY3-o355dc8LRDu-HGCxoGDePhZone/view?usp=drivesdk

Thanks for the help, btw this is still the result.

i even rename it to test.jar and test.jad and midlet url to test.jar just to make sure no spaces.

we have different path i use file:///sdcard/test.jar for midlet url first but error occur as you can see from the screenshot.

tried also file:///storage/emulated/0/test.jar as midlet url but still the same error.

ahmadprayoxxsy commented 4 years ago

Try not to put it in a folder. Donload operamini:https://drive.google.com/file/d/1Xxzf9yURX7mOnHZPSUCjDbTq5XmSdKru/view?usp=drivesdk

Put in internal memory. If you can't, the name of the internal memory on your cellphone might be different from the one on the Samsung cellphone. I'm sure this is just an error in the name of the internal memory.

woesss commented 4 years ago

To install the signed version of Opera you need Jad.

Some games won't also work without installing through Jad, yes you can install the local Jar file but the game won't open (example: Blood+.zip.

To also make some demo games totally full, you need the Jad file.

But, in such exceptional cases, you can install through the built-in file piсker. Another thing is if such an opportunity did not exist at all... In order to do the way you want, the emulator will have to scan the entire file system each time to find the JAR - this is a long time and there may be errors if there are several JARs with the same name.

oatmeal01 commented 4 years ago

To install the signed version of Opera you need Jad. Some games won't also work without installing through Jad, yes you can install the local Jar file but the game won't open (example: Blood+.zip. To also make some demo games totally full, you need the Jad file.

But, in such exceptional cases, you can install through the built-in file piсker. Another thing is if such an opportunity did not exist at all... In order to do the way you want, the emulator will have to scan the entire file system each time to find the JAR - this is a long time and there may be errors if there are several JARs with the same name.

I'll just install offline Jad through J2ME Loader's built-in file picker. I agree on what you said earlier, jad are just used in rare cases. Btw im collecting Java App & Games for J2ME Loader and most of it are in Jar format.

oatmeal01 commented 4 years ago

Best Solution: Just install Offline JAD through J2ME loader's Built-in filepicker.

nikita36078 commented 4 years ago

As it's already been said, there's no reliable way to get the .jad path if it's opened through the 3rd party app. The emulator simply can't find the corresponding .jar file.