You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Godot Android插件异常:Engine.has_singleton(_plugin_name)返回false的排查求助

Godot Android插件异常:Engine.has_singleton(_plugin_name)返回false的排查求助

大家好,我现在在用Godot开发一款Android应用,因为需要用到特定的Android库,所以跟着官方模板做了一个Godot Android插件。为了适配目标库,我把gradle版本更到了8.11.1,Target Android SDK设为36。目前插件能成功编译,App也能正常构建,插件在编辑器里也显示已激活,但一到手机上运行,Engine.has_singleton(_plugin_name)就返回false,而且没有任何其他报错信息,实在找不到问题出在哪,想请大家帮忙排查下。

我的入口脚本(Node2D)

extends Node2D

# TODO: Update to match your plugin's name
var _plugin_name = "GodotSensorPlugin"
var _android_plugin

func _ready():
    if Engine.has_singleton(_plugin_name):
        _android_plugin = Engine.get_singleton(_plugin_name)
    else:
        printerr("Couldn't find plugin " + _plugin_name)

export_plugin.gd代码

@tool
extends EditorPlugin

# A class member to hold the editor export plugin during its lifecycle.
var export_plugin : AndroidExportPlugin

func _enter_tree():
    # Initialization of the plugin goes here.
    export_plugin = AndroidExportPlugin.new()
    add_export_plugin(export_plugin)

func _exit_tree():
    # Clean-up of the plugin goes here.
    remove_export_plugin(export_plugin)
    export_plugin = null

class AndroidExportPlugin extends EditorExportPlugin:
    var _plugin_name = "GodotSensorPlugin"

    func _supports_platform(platform):
        if platform is EditorExportPlatformAndroid:
            return true
        return false

    func _get_android_libraries(platform, debug):
        if debug:
            return PackedStringArray([_plugin_name + "/bin/debug/" + _plugin_name + "-debug.aar"])
        else:
            return PackedStringArray([_plugin_name + "/bin/release/" + _plugin_name + "-release.aar"])

    func _get_android_dependencies(platform, debug):
        # TODO: Add remote dependices here.
        if debug:
            return PackedStringArray(["androidx.health.connect:connect-client:1.1.0-rc02", "com.google.android.material:material:1.10.0", "androidx.appcompat:appcompat:1.6.1", "androidx.constraintlayout:constraintlayout:2.1.4", "androidx.navigation:navigation-fragment-ktx:2.6.0", "androidx.navigation:navigation-ui-ktx:2.6.0"])
        else:
            return PackedStringArray(["androidx.health.connect:connect-client:1.1.0-rc02", "com.google.android.material:material:1.10.0", "androidx.appcompat:appcompat:1.6.1", "androidx.constraintlayout:constraintlayout:2.1.4", "androidx.navigation:navigation-fragment-ktx:2.6.0", "androidx.navigation:navigation-ui-ktx:2.6.0"])

    func _get_name():
        return _plugin_name

Kotlin插件主类(路径:src/de/path/to/my/plugin)

package de.path.to.my.plugin

import android.content.pm.PackageManager
import androidx.activity.ComponentActivity
import androidx.activity.result.contract.ActivityResultContract
import androidx.health.connect.client.HealthConnectClient
import androidx.health.connect.client.PermissionController
import androidx.health.connect.client.records.StepsRecord
import androidx.health.connect.client.request.ReadRecordsRequest
import androidx.health.connect.client.time.TimeRangeFilter
import org.godotengine.godot.Godot
import org.godotengine.godot.plugin.GodotPlugin
import org.godotengine.godot.plugin.UsedByGodot
import java.time.Instant

class HealthConnectBridge(godot: Godot) : GodotPlugin(godot) {
    private val componentActivity: ComponentActivity
        get() = godot.getActivity() as ComponentActivity

    private val client: HealthConnectClient by lazy {
        HealthConnectClient.getOrCreate(componentActivity)
    }

    override fun getPluginName(): String = "GodotSensorPlugin"
}

BuildConfig内容

public final class BuildConfig {
    public static final boolean DEBUG = Boolean.parseBoolean("true");
    public static final String LIBRARY_PACKAGE_NAME = "de.path.to.my.plugin";
    public static final String BUILD_TYPE = "debug";
    // Field from default config.
    public static final String GODOT_PLUGIN_NAME = "GodotSensorPlugin";
}

我已经确认Kotlin文件的路径是正确的,和BuildConfig里的LIBRARY_PACKAGE_NAME完全对应。现在实在摸不着头脑,有没有什么方法能排查出问题所在?比如有没有隐藏的日志可以查看,或者哪里的配置我可能遗漏了?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 03:10:38