Malachi de AElfweald
Malachi de AElfweald
I still received the error message with cDAT from the command line.
`root.mkdirs()` is returning false indicating that it failed to create the directory; but AndroidTapeRoot is not checking the return value.
After reviewing https://developer.android.com/guide/topics/data/data-storage.html#filesExternal I did some testing. Using `System.getenv` or `Environment.getExternalStorageDirectory`, it attempts to write to `/sdcard/okreplay/tapes//` and fails, though `/sdcard/` does exist. Using `context.getExternalFilesDir(null)` is succesfully creates a directory...
I did a test using a replacement for AndroidTapeRoot (workaround to allow that here https://github.com/airbnb/okreplay/issues/64 ) and this successfully started writing files: ``` private fun getSdcardDir(context: Context, type: String): File...
This is due to the OkReplayRuleChain. You can workaround the issue by doing it manually: ``` @Rule public final TestRule testRule = RuleChain.outerRule(new RecorderRule(okReplayConfig)).around(activityRule); ```
Confirmed that I ran into the same problem trying to run a test against the LG v20 from A.S.
I was able to get past the permission problem by using the GrantPermissionRule. ``` @ClassRule public static GrantPermissionRule grantPermissionRule = GrantPermissionRule.grant( Manifest.permission.WRITE_EXTERNAL_STORAGE ); ```
@scottyab did you put that in a companion object?
`grpcCoroutines: []` is working in yaml version with proto3 with 0.5.0
In the onDraw method, changing ``` String text = getText(); ``` to ``` String text = getText().toString(); ``` seems to fix it.