Android getExternalFilesDir抛出SecurityException“;“不是所有者”;

Android getExternalFilesDir抛出SecurityException“;“不是所有者”;,android,testing,android-sdcard,Android,Testing,Android Sdcard,我有一个在android上运行了一段时间的程序。它有一个在大多数设备上通过的测试项目。然而,现在我正试图在nvidia tegra上运行它,这是Android(4.4.2)的最新版本,我遇到了一个问题。当我调用“getExternalFilesDir(null)”时,它抛出一个安全异常 java.lang.SecurityException: Package blah.blah.test does not belong to 10088 试图找到它,我发现在大多数设备上,/mnt/sdcard

我有一个在android上运行了一段时间的程序。它有一个在大多数设备上通过的测试项目。然而,现在我正试图在nvidia tegra上运行它,这是Android(4.4.2)的最新版本,我遇到了一个问题。当我调用“getExternalFilesDir(null)”时,它抛出一个安全异常

java.lang.SecurityException: Package blah.blah.test does not belong to 10088
试图找到它,我发现在大多数设备上,/mnt/sdcard/android/data中的“ls-l”如下所示:

drwxrwxr-x system   sdcard_rw          2014-07-03 13:02 blah.blah
drwxrwxr-x system   sdcard_rw          2014-05-19 13:07 blah.blah.test
drwxrwx--- u0_a88   sdcard_r          2014-07-04 09:58 blah.blah
drwxrwx--- u0_a85   sdcard_r          2014-07-04 09:59 blah.blah.test
但在tegra上看起来是这样的:

drwxrwxr-x system   sdcard_rw          2014-07-03 13:02 blah.blah
drwxrwxr-x system   sdcard_rw          2014-05-19 13:07 blah.blah.test
drwxrwx--- u0_a88   sdcard_r          2014-07-04 09:58 blah.blah
drwxrwx--- u0_a85   sdcard_r          2014-07-04 09:59 blah.blah.test
因此,我猜测,由于最新android版本中对外部驱动器访问的更改,测试项目在安装到tegra上时具有不同的用户ID是问题的原因,我想知道我现在应该如何编写测试代码?我错过了什么魔术吗

edit1: 在我看来,测试项目在eclipse中看起来像是一个完全独立的项目。它包含许多派生自AndroidTestCase的类,我通过右键单击并选择“debug as android junit test”来运行它


正常运行时,主程序完全可以访问SD卡。

该程序是什么?你能证明吗?你能提供更多关于测试项目的细节吗?这是JUnit测试项目吗?或者这是一个完全独立的项目?似乎tegra没有授予VIN写入权限(sdcard_r)。也许是因为“应用程序操作”的缘故,我上面的编辑回答了测试项目的问题吗?我不能100%确定我是否理解你的要求?JUnit测试应该与应用程序本身在同一进程中运行,因此应该共享一个用户ID。