Я пытался реализовать CameraKit в своем приложении, используя Kotlin.Я следовал этому учебнику.Он написан на Java, поэтому я конвертировал его в Kotlin.
Вот main_activity.java из учебника:
import com.camerakit.CameraKitView;
public class MainActivity extends AppCompatActivity {
private CameraKitView cameraKitView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
cameraKitView = findViewById(R.id.camera);
}
@Override
protected void onResume() {
super.onResume();
cameraKitView.onResume();
}
@Override
protected void onPause() {
cameraKitView.onPause();
super.onPause();
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
cameraKitView.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
Вот мой файл cameraScreen.kt, эквивалент Kotlin для приведенного выше кода:
package com.example.testapp
import com.camerakit.CameraKitView
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class cameraScreen : AppCompatActivity() {
private var cameraKitView:CameraKitView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_camera_screen)
cameraKitView = findViewById(R.id.camera)
}
override fun onResume() {
super.onResume()
cameraKitView.onResume()
}
override fun onPause() {
super.onPause()
cameraKitView.onPause()
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
cameraKitView.onRequestPermissionsResult(requestCode, permissions, grantResults)
}
}
Я получаю эту ошибку в моей private var cameraKitView:CameraKitView
строке
Свойство должно быть инициализировано или быть абстрактным
Вот что япробовал до сих пор
- Пробовал с помощью
lateinit
- приложение зависало - Пробовал с помощью
abstract
- приложение ломалось - Пробовал положить строку в
init{...}
блок.Тогда нижние функции не смогут его увидеть.
Имейте в виду, что все эти вещи с камеры находятся в другом упражнении, которое я связываю со своим основным действием с помощью кнопки.Если я удаляю все в файле cameraScreen.kt, активность переключается нормально, поэтому я не думаю, что проблема существует.
Как мне решить эту проблему?