我已经有一个 cordova 项目文件夹 www
正在进行中。
构建这个,您将拥有一个 Android 项目。
这将创建一个 MainActivity.java
文件。
我不懂Java,所以我将文件更改为MainActivity.kt
并转换了内部代码。
但是当我运行它时,它不会运行错误。
构建 Cordova :
cordova build android
创建MainActivity.java:
package com.example.gamename;
import android.os.Bundle;
import org.apache.cordova.*;
public class MainActivity extends CordovaActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
if (extras != null && extras.getBoolean("cdvStartInBackground", false)) {
moveTaskToBack(true);
}
loadUrl(launchUrl);
}
}
转换后的MainActivity.kt:
package com.example.gamename
import android.content.Intent.getIntent
import android.os.Bundle
import org.apache.cordova.*
class MainActivity:CordovaActivity() {
override fun onCreate(savedInstanceState:Bundle) {
super.onCreate(savedInstanceState)
val extras = getIntent().getExtras()
if (extras != null && extras.getBoolean("cdvStartInBackground", false)) {
moveTaskToBack(true)
}
loadUrl(launchUrl)
}
}
出现错误......:
2020-03-09 18:56:57.159 7625-7625/com.example.gamename E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.gamename, PID: 7625 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.gamename/com.example.gamename.MainActivity}: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState
有解决办法吗?还是没有办法?
必须解决使用认证、支付、db(可惜我不懂Java)。
最佳答案
需要将 Bundle 更改为“Bundle”吗?在 MainActivity.kt 中。
override fun onCreate(savedInstanceState:Bundle?) {
关于java - 如何使用 Kotlin 构建 cordova 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60598227/