【问题标题】:Flutter 'onCreate' overrides nothingFlutter 'onCreate' 不会覆盖任何内容
【发布时间】:2022-02-04 09:28:38
【问题描述】:

我想在我的 Flutter 应用中添加一些 kotlin 代码。我在 project_name/android/app/src/main/kotlin/com/example/app/MainActivity.kt 上添加了 onCreate 函数。

这是我完整的MainActivity.kt

import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel
import io.flutter.plugins.GeneratedPluginRegistrant
import android.os.Environment
import android.net.Uri

import android.content.Intent

class MainActivity: FlutterActivity() {
    private val channel = "externalStorage";
    override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
        GeneratedPluginRegistrant.registerWith(flutterEngine)
        MethodChannel(flutterEngine.dartExecutor.binaryMessenger, channel).setMethodCallHandler { call, result ->
            when (call.method) {
                "getExternalStorageDirectory" ->
                    result.success(Environment.getExternalStorageDirectory().toString())
                "getExternalStoragePublicDirectory" -> {
                    val type = call.argument<String>("type")
                    result.success(Environment.getExternalStoragePublicDirectory(type).toString())
                }
                else -> result.notImplemented()
            }
        }

    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        if (!Settings.canDrawOverlays(getApplicationContext())) {
            val myIntent = Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION)
            val uri: Uri = Uri.fromParts("package", getPackageName(), null)
            myIntent.setData(uri)
            startActivityForResult(myIntent, REQUEST_OVERLAY_PERMISSIONS)
            return
        }
    }
}

然后我在构建时遇到了这个错误

'onCreate' overrides nothing
Unresolved reference: Settings
Unresolved reference: Settings
Unresolved reference:
REQUEST_OVERLAY_PERMISSIONS

我需要导入一些代码吗?

【问题讨论】:

  • 你有class MainActivity : AppCompatActivity() 吗?
  • 我的MainActivity是这样的class MainActivity: FlutterActivity()
  • @ADM 你可以在上面看到我的完整代码。我已经编辑了我的代码。
  • 在 Andriod Studio 的代码菜单上,单击覆盖方法或 。或者,您可以右键单击类文件中的任意位置,然后单击 Generate 或 ,然后选择 Override methods 让 IDE 为您生成这些。
  • @bylazy 这是颤振项目,没有建议MainActivity.kt。如果我点击 我有 3 个覆盖选项:hashCode、equals、toString() 并且我得到了同样的错误。

标签: android flutter kotlin


【解决方案1】:

终于,我找到了答案。我需要导入一些代码来添加onCreate 方法。

  1. import android.os.BundleBundle 参数。请参阅this 链接。
  2. import android.provider.Settings 因为我使用Settings.ACTION_MANAGE_OVERLAY_PERMISSION。请参阅this 链接。
  3. 忘记加var REQUEST_OVERLAY_PERMISSIONS = 100

现在它可以工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-05
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    相关资源
    最近更新 更多