getContentResolver()';从Kotlin类调用Java方法时出现空对象引用错误

getContentResolver()';从Kotlin类调用Java方法时出现空对象引用错误,java,android,kotlin,methods,Java,Android,Kotlin,Methods,论创建方法 private lateinit var main: MainActivity override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_regions) main = MainActivity() } 这是我的Kotlin方法,main是我的Java类

论创建方法

private lateinit var  main: MainActivity

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState) 
        setContentView(R.layout.activity_regions)
 main = MainActivity()
}    

这是我的Kotlin方法,main是我的Java类对象,我试图调用setOutPath方法,但当我运行程序时,它在一个空对象引用错误上给出了“android.content.Context.getContentResolver()”

 override fun onActivityResult(
        requestCode: Int,
        resultCode: Int,
        data: Intent?
    ) {
        super.onActivityResult(requestCode, resultCode, data)
        if (requestCode == MainActivity2.SCREEN_RECORD_REQUEST_CODE) {
            if (resultCode == Activity.RESULT_OK) {
                //Set file path or Uri depending on SDK version
                main.setOutputPath()
                //Start screen recording
                hbRecorder.startScreenRecording(data, resultCode, this)
            }
        }
    }
这是我的java方法。这一行给了我一个错误

ContentResolver resolver;
ContentValues contentValues;
Uri mUri;
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public void setOutputPath() {
    String filename = generateFileName();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
        resolver = getContentResolver();
        contentValues = new ContentValues();
        contentValues.put(MediaStore.Video.Media.RELATIVE_PATH, "Movies/" + "HBRecorder");
        contentValues.put(MediaStore.Video.Media.TITLE, filename);
        contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, filename);
        contentValues.put(MediaStore.MediaColumns.MIME_TYPE, "video/mp4");
        mUri = resolver.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, contentValues);
        //FILE NAME SHOULD BE THE SAME
        hbRecorder.setFileName(filename);
        hbRecorder.setOutputUri(mUri);
    }else{
        createFolder();
        hbRecorder.setOutputPath(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES) +"/HBRecorder");
    }
    }

请显示类定义行。这些是什么类?我不认为把这个问题作为规范NPE问题的重复来结束是有用的。很明显,OP正在调用一个方法
getContentResolver()
,这如何生成NPE并不明显。我重新开始了这个问题。这里的
main
是什么。我怀疑你创建了一个活动实例?请用这个细节更新这个问题。main是我的Java类对象,我已经在我的问题@admit中定义了main,这不是我要问的。我是问你如何初始化main?
resolver = getContentResolver();