【发布时间】: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() 并且我得到了同样的错误。