IlyaPomaskin / h3lwp

Heroes of Might and Magic 3 live wallpaper for android
GNU General Public License v3.0
129 stars 14 forks source link

Request: Publication on F-Droid #4

Open xpmn opened 4 years ago

xpmn commented 4 years ago

Hi, I see that your app isn't using google features and free and open source. Please, could you post it to the F-Droid store? It can be posted here: https://gitlab.com/fdroid/rfp/-/issues And readme about all requirements in the root of repo: https://gitlab.com/fdroid/rfp/ Thank you

licaon-kter commented 2 years ago

No LICENSE so...

IlyaPomaskin commented 2 years ago

Done. It's GPL3 now. Also added metadata for f-droid. What else I can do?

licaon-kter commented 2 years ago

So, this test recipe metadata/com.homm3.livewallpaper.yml

License: Unknown
SourceCode: https://github.com/IlyaPomaskin/h3lwp
IssueTracker: https://github.com/IlyaPomaskin/h3lwp/issues

RepoType: git
Repo: https://github.com/IlyaPomaskin/h3lwp

Builds:
  - versionName: 3.0.7
    versionCode: 307
    commit: 515e76a164b99588a03eb6d841f3a0fa48f0dd94
    subdir: android
    sudo:
      - apt-get update || apt-get update
      - apt-get install -y openjdk-11-jdk-headless
      - update-alternatives --auto java
    gradle:
      - yes

AutoUpdateMode: None
UpdateCheckMode: Tag

Crashes after I choose h3sprite.lod:

FATAL EXCEPTION: main
Process: com.homm3.livewallpaper, PID: 6939
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=610884509, result=-1, data=Intent { dat=content://com.android.externalstorage.documents/document/primary:vcmi-data/data/h3sprite.lod flg=0x1 }} to activity {com.homm3.livewallpaper/com.homm3.livewallpaper.android.MainActivity}: com.badlogic.gdx.utils.SharedLibraryLoadRuntimeException: Couldn't load shared library 'gdx' for target: Android
    at android.app.ActivityThread.deliverResults(ActivityThread.java:5014)
    at android.app.ActivityThread.handleSendResult(ActivityThread.java:5055)
    at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2067)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:223)
    at android.app.ActivityThread.main(ActivityThread.java:7705)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:952)
Caused by: com.badlogic.gdx.utils.SharedLibraryLoadRuntimeException: Couldn't load shared library 'gdx' for target: Android
    at com.badlogic.gdx.utils.SharedLibraryLoader.load(SharedLibraryLoader.java:128)
    at com.badlogic.gdx.utils.GdxNativesLoader.load(GdxNativesLoader.java:30)
    at com.homm3.livewallpaper.android.data.ParsingViewModel.parseFile(ParsingViewModel.kt:86)
    at com.homm3.livewallpaper.android.ui.components.ParsingScreenKt$ParsingScreen$openFileSelector$1.invoke(ParsingScreen.kt:43)
    at com.homm3.livewallpaper.android.ui.components.ParsingScreenKt$ParsingScreen$openFileSelector$1.invoke(ParsingScreen.kt:43)
    at com.homm3.livewallpaper.android.ui.components.FileSelectorKt$createFileSelector$filesSelector$1.invoke(FileSelector.kt:47)
    at com.homm3.livewallpaper.android.ui.components.FileSelectorKt$createFileSelector$filesSelector$1.invoke(FileSelector.kt:45)
    at androidx.activity.compose.ActivityResultRegistryKt$rememberLauncherForActivityResult$1$1.onActivityResult(ActivityResultRegistry.kt:106)
    at androidx.activity.result.ActivityResultRegistry.doDispatch(ActivityResultRegistry.java:409)
    at androidx.activity.result.ActivityResultRegistry.dispatchResult(ActivityResultRegistry.java:366)
    at androidx.activity.ComponentActivity.onActivityResult(ComponentActivity.java:712)
    at android.app.Activity.dispatchActivityResult(Activity.java:8304)
    at android.app.ActivityThread.deliverResults(ActivityThread.java:5007)
    ... 11 more
Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library "libgdx.so" not found
    at java.lang.Runtime.loadLibrary0(Runtime.java:1087)
    at java.lang.Runtime.loadLibrary0(Runtime.java:1008)
    at java.lang.System.loadLibrary(System.java:1664)
    at com.badlogic.gdx.utils.SharedLibraryLoader.load(SharedLibraryLoader.java:122)
    ... 23 more

...because the lib/ folder is missing from the APK

Looking in the build VM:

~/build/com.homm3.livewallpaper$ find . -iname "*.so"
./android/libs/arm64-v8a/libgdx-freetype.so
./android/libs/arm64-v8a/libgdx.so
./android/libs/x86_64/libgdx-freetype.so
./android/libs/x86_64/libgdx.so
./android/libs/armeabi-v7a/libgdx-freetype.so
./android/libs/armeabi-v7a/libgdx.so
./android/libs/x86/libgdx-freetype.so
./android/libs/x86/libgdx.so

...they have been build but not copied to the final APK, @IlyaPomaskin thoughts?

file from your copy of Heroes 3 SoD or Complete. HD Edition will not work

How do I know which one I have? Can you give sha256sums for each so I can check?

/LE: First screen has black on dark grey text that's hard to read

homm3darrrrk

IlyaPomaskin commented 2 years ago

...they have been build but not copied to the final APK, @IlyaPomaskin thoughts?

For copying native libs there are function copyAndroidNatives in android/build.gradle. Unfortunately I don't know how gradle works and can't tell you at which time this function called.

How do I know which one I have? Can you give sha256sums for each so I can check?

You need to look at game name. It should be called Shadow of the Death (SoD). There are a lot game versions due to localisations and patches with different variations of h3sprite.lod. My versions have this hashes: 43c6bebcef7deda96d3e07ee484f7753b7852452da90ae929262240a6bf77cc3 57caf2c50573f33a0d91e4222e51d3a73c136d44decf59dde21cacad88fe5d66

licaon-kter commented 2 years ago

For copying native libs there are function copyAndroidNatives in android/build.gradle. Unfortunately I don't know how gradle works and can't tell you at which time this function called.

Saw them, will retry

You need to look at game name.

Eh, the box is buried somewhere

My versions have this hashes: 57caf2c50573f33a0d91e4222e51d3a73c136d44decf59dde21cacad88fe5d66

Yay, I have the same