Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android Remote Debug: Godot Editor remains stuck if one-click deploy device architecture doesn't match the device #86284

Closed
Alex2782 opened this issue Dec 18, 2023 · 6 comments · Fixed by #88611

Comments

@Alex2782
Copy link
Contributor

Tested versions

v4.2.1.stable.official [b09f793]

System information

Godot v4.2.1.stable - macOS 14.2.0 - Vulkan (Mobile) - integrated Apple M1 - Apple M1 (8 Threads)

Issue description

Godot does not yet check whether the architecture fits. Progress bar remains stuck at 66%, it is not possible to press "Cancel". The application "does not respond" and must be terminated via the task manager.

Bildschirmfoto 2023-12-18 um 02 23 22

Steps to reproduce

In the export dialog, select the Android CPU architecture that the device does not support.

Bildschirmfoto 2023-12-18 um 01 23 06
Bildschirmfoto 2023-12-18 um 01 23 35

Minimal reproduction project (MRP)

N/A

@YuriSizov
Copy link
Contributor

Cc @bruvzg @m4gr3d

@Alex2782
Copy link
Contributor Author

NoClassDefFoundError, maybe because my tablet is looking for the classes under '/lib/armeabi-v7a'

logcat
12-18 01:18:42.959 18629 18629 I zygote  : Rejecting re-init on previously-failed class java.lang.Class<org.godotengine.godot.Godot$onInitRenderView$2>: java
.lang.NoClassDefFoundError: Failed resolution of: Landroid/view/WindowInsetsAnimation$Callback;
12-18 01:18:42.959 18629 18629 I zygote  :   at void org.godotengine.godot.GodotFragment.onCreate(android.os.Bundle) (GodotFragment.java:181)
12-18 01:18:42.959 18629 18629 I zygote  :   at void androidx.fragment.app.Fragment.performCreate(android.os.Bundle) (Fragment.java:2949)
12-18 01:18:42.959 18629 18629 I zygote  :   at void androidx.fragment.app.FragmentStateManager.create() (FragmentStateManager.java:475)
12-18 01:18:42.959 18629 18629 I zygote  :   at void androidx.fragment.app.FragmentStateManager.moveToExpectedState() (FragmentStateManager.java:278)
12-18 01:18:42.959 18629 18629 I zygote  :   at void androidx.fragment.app.FragmentManager.executeOpsTogether(java.util.ArrayList, java.util.ArrayList, int, 
int) (FragmentManager.java:2189)
12-18 01:18:42.959 18629 18629 I zygote  :   at void androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(java.util.ArrayList, java.util
.ArrayList) (FragmentManager.java:2100)
12-18 01:18:42.959 18629 18629 I zygote  :   at void androidx.fragment.app.FragmentManager.execSingleAction(androidx.fragment.app.FragmentManager$OpGenerator
, boolean) (FragmentManager.java:1971)
12-18 01:18:42.959 18629 18629 I zygote  :   at void androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss() (BackStackRecord.java:311)
12-18 01:18:42.959 18629 18629 I zygote  :   at void org.godotengine.godot.GodotActivity.onCreate(android.os.Bundle) (GodotActivity.kt:84)
12-18 01:18:42.959 18629 18629 I zygote  :   at void com.godot.game.GodotApp.onCreate(android.os.Bundle) (GodotApp.java:45)
12-18 01:18:42.959 18629 18629 I zygote  :   at void android.app.Activity.performCreate(android.os.Bundle, android.os.PersistableBundle) (Activity.java:7258)
12-18 01:18:42.959 18629 18629 I zygote  :   at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:7249)
12-18 01:18:42.959 18629 18629 I zygote  :   at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentati
on.java:1222)
12-18 01:18:42.959 18629 18629 I zygote  :   at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClie
ntRecord, android.content.Intent) (ActivityThread.java:2927)
12-18 01:18:42.959 18629 18629 I zygote  :   at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android
.content.Intent, java.lang.String) (ActivityThread.java:3059)
12-18 01:18:42.959 18629 18629 I zygote  :   at void android.app.ActivityThread.-wrap11(android.app.ActivityThread, android.app.ActivityThread$ActivityClient
Record, android.content.Intent, java.lang.String) (ActivityThread.java:-1)
12-18 01:18:42.959 18629 18629 I zygote  :   at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1724)
12-18 01:18:42.959 18629 18629 I zygote  :   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:106)
12-18 01:18:42.959 18629 18629 I zygote  :   at void android.os.Looper.loop() (Looper.java:164)
12-18 01:18:42.959 18629 18629 I zygote  :   at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:7000)
12-18 01:18:42.959 18629 18629 I zygote  :   at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
12-18 01:18:42.959 18629 18629 I zygote  :   at void com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run() (RuntimeInit.java:441)
12-18 01:18:42.959 18629 18629 I zygote  :   at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1408)
12-18 01:18:42.959 18629 18629 I zygote  : Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.WindowInsetsAnimation$Callback" on pa
th: DexPathList[[zip file "/data/app/com.example.mrcollisionexample-_FsJlWjfZxJBa6MPnPbCYw==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.mrcollisionexample-_FsJlWjfZxJBa6MPnPbCYw==/lib/arm, /data/app/com.example.mrcollisionexample-_FsJlWjfZxJBa6MPnPbCYw==/base.apk!/lib/armeabi-v7a, /system/lib, /system/vendor/lib]]

@m4gr3d
Copy link
Contributor

m4gr3d commented Feb 13, 2024

@Alex2782 I'm unable to reproduce the issue while running Godot Editor v4.2.1.stable on a Windows 11 machine, and attempting to deploy against a Galaxy Tab S8 running Android 14.

When selecting an invalid architecture, the export process fails quickly with the following error as expected.

image

@Alex2782
Copy link
Contributor Author

Alex2782 commented Feb 13, 2024

@m4gr3d I think an arm32 (armeabi-v7a) device is needed.
Reproduced so far on Samsung Tab A6 (Android 8.1) or Nexus 7 (Android 6)

On my Samsung Tab S7 (Android 13, arm64), I'm also unable to reproduce.

image

@m4gr3d
Copy link
Contributor

m4gr3d commented Feb 13, 2024

@m4gr3d I think an arm32 (armeabi-v7a) device is needed. Reproduced so far on Samsung Tab A6 (Android 8.1) or Nexus 7 (Android 6)

On my Samsung Tab S7 (Android 13, arm64), I'm also unable to reproduce.

image

@Alex2782 it may be the Android version instead that could be the issue. Can you test with an emulator and check if the behavior changes depending on the Android version that's running.

@Alex2782
Copy link
Contributor Author

Unfortunately not at the moment. I'm thinking of fixing the problem by checking if a device is connected and comparing the export settings. I think this would also be an improvement for arm64 devices.

Bildschirmfoto 2024-02-13 um 17 11 08

@Calinou Calinou changed the title Android Remote Debug: Godot Editor remains at 66% and must be terminated Android Remote Debug: Godot Editor remains stuck if one-click deploy device architecture doesn't match the device Feb 24, 2024
@akien-mga akien-mga modified the milestones: 4.4, 4.3 Feb 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants