Godot Android плагин: Engine.has_singleton (_plugin_name) возвращает falseAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Godot Android плагин: Engine.has_singleton (_plugin_name) возвращает false

Сообщение Anonymous »

Я пытаюсь создать приложение для Android с помощью Годо. Поскольку мне нужна конкретная библиотека Android, я попытался создать плагин Godot Android после официального шаблона. Плагин также активируется.

Код: Выделить всё

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)
< /code>
my 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
Я также убедился, что пути файлов Java верны:
My Plugin Main File (который находится в 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"
< /code>
Я также обновил путь в BuildConfig: < /p>
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";
}
Есть ли что -нибудь, что я могу сделать, чтобы обнаружить, что идет не так?

Подробнее здесь: https://stackoverflow.com/questions/797 ... urns-false
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»