Parse-SDK-Android
Parse-SDK-Android copied to clipboard
Compose Preview crashes because of Parse init
New Issue Checklist
- [x] I am not disclosing a vulnerability.
- [x] I am not just asking a question.
- [x] I have searched through existing issues.
- [x] I can reproduce the issue with the latest version of Parse Server and the Parse Android SDK.
Issue Description
Cannot run Preview
Steps to reproduce
Create a Preview page
Actual Outcome
Error
Expected Outcome
Component rendered in preview pane
Environment
Android
Parse Android SDK
- SDK version: 4.2.1
- Operating system version: Sonoma 14.2
Server
- Parse Server version:
FILL_THIS_OUT - Operating system:
FILL_THIS_OUT - Local or remote host (AWS, Azure, Google Cloud, Heroku, Digital Ocean, etc):
FILL_THIS_OUT
Database
- System (MongoDB or Postgres):
FILL_THIS_OUT - Database version:
FILL_THIS_OUT - Local or remote host (MongoDB Atlas, mLab, AWS, Azure, Google Cloud, etc):
FILL_THIS_OUT
Logs
java.lang.NullPointerException: Cannot invoke "java.io.File.getAbsolutePath()" because the return value of "com.parse.ParseCacheDirMigrationUtils.getOldParseDir(android.content.Context)" is null
I am trying with this code to preview my signup component I have tried initializing Parse in my preview, but it still doesn't work
@OptIn(ExperimentalMaterial3Api::class)
@Preview(showBackground = true)
@Composable
fun SignUpPagePreview() {
val configuration = Parse.Configuration
.Builder(LocalContext.current)
.applicationId("****")
.server("****")
.build()
Parse.initialize(configuration)
Parse.enableLocalDatastore(LocalContext.current)
CompositionLocalProvider(
LocalUserState provides remember { UserStateViewModel() },
) {
val navController = rememberNavController()
SignUpPage(navController = navController)
}
}
Thanks for opening this issue!
- ❌ Please fill out all fields with a placeholder
FILL_THIS_OUT, otherwise your issue will be closed. If a field does not apply to the issue, fill inn/a.
Not sure whether this is a bug or actually an incorrect setup of the preview context.
hello @mtrezza and thanks for the reply. that context object is the only context reference I have in the Preview component. do you or anyone else know how to do it better? or know what is wrong? or what am I doing wrong, if any?
Now I have a new one with
@Preview(showBackground = true)
@Composable
fun PostViewPreview() {
val configuration = Parse.Configuration
.Builder(LocalContext.current)
.applicationId("****")
.server("****")
.build()
Parse.initialize(configuration)
Parse.enableLocalDatastore(LocalContext.current)
ParseObject.registerSubclass(User::class.java)
ParseObject.registerSubclass(UserInspiration::class.java)
val user = User()
user.uniqueDisplayName = "John Doe"
val userInspiration = UserInspiration()
userInspiration.user = user
userInspiration.title = "Something to test #test"
PostView(userInspiration = userInspiration)
}
java.lang.NullPointerException: Cannot invoke "java.io.File.getAbsolutePath()" because the return value of "com.parse.ParseCacheDirMigrationUtils.getOldParseDir(android.content.Context)" is null at com.parse.ParseCacheDirMigrationUtils.runSilentMigration(ParseCacheDirMigrationUtils.java:30)
thanks!