Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何配置codenameone项目以安装在Android的外部存储上_Codenameone_Android Permissions - Fatal编程技术网

如何配置codenameone项目以安装在Android的外部存储上

如何配置codenameone项目以安装在Android的外部存储上,codenameone,android-permissions,Codenameone,Android Permissions,我正在尝试将codenameone应用程序安装到外部存储,因此我不需要root权限来调试写入存储的内容,因为它在Android上不工作,即使在模拟器中也不工作 首先,我假设只有codenameone\u设置中的codename1.arg.android.installLocation=preferExternal,properties可以做到这一点,但即使将installLocation从auto更改为preferExternal,应用程序仍会安装到内部存储 因此,我认为它可能需要引用prefe

我正在尝试将codenameone应用程序安装到外部存储,因此我不需要root权限来调试写入存储的内容,因为它在Android上不工作,即使在模拟器中也不工作

首先,我假设只有
codenameone\u设置中的
codename1.arg.android.installLocation=preferExternal
,properties
可以做到这一点,但即使将installLocation从auto更改为preferExternal,应用程序仍会安装到内部存储

因此,我认为它可能需要引用preferExternal,并继续给出它们(
=“preferExternal\”
)-这在生成服务器上给出了一个清单生成错误,它用双引号显示清单,因此原始格式是正确的

从错误报告中,我看到了


因此,我认为可能需要这样做,才能真正实现到外部存储的安装。我尝试像文档建议的那样将
codename1.arg.android.permission.WRITE_EXTERNAL_STORAGE=true
添加到属性文件中,但在清单合并中失败:

合并结果:错误 /tmp/build6786351350686020379xxx/happy2/src/main/AndroidManifest.xml:48:7-69错误: 元素在AndroidManifest中使用权限#android.permission.WRITE_外部存储。xml:49:5-81与AndroidManifest中声明的元素重复。xml:45:5-106 /tmp/build6786351350686020379xxx/happy2/src/main/AndroidManifest.xml错误: 验证失败,正在退出

好的,我认为它总是包含在内的,因此我只需要将所需设置更改为true,然后按照文档中的说明,将
codename1.arg.android.permission.WRITE_EXTERNAL_STORAGE.required=true
添加到属性中。这将生成,但实际权限未设置为android:required=“true”,但仍为false

使用
android.xpermissions
标记插入想要的行
确实会将其插入清单,但清单生成器会给出错误提示,因为默认的错误行也会出现:

合并结果:错误 /tmp/build5902397225615175xxx/happy2/src/main/AndroidManifest.xml:48:3-103错误: 元素在AndroidManifest中使用权限#android.permission.WRITE_外部存储。xml:48:3-103与AndroidManifest中声明的元素重复。xml:45:5-106 /tmp/build5902397225615175xxx/happy2/src/main/AndroidManifest.xml错误: 验证失败,正在退出

因此问题仍然存在,如何配置codenameone项目以安装在Android的外部存储上?

要点是,你的应用程序的某些部分将始终安装在隐藏区域中,存储可能会在那里

如果您想将内容写入SD卡,可以使用
FileSystemStorage
API来实现,该API允许您写入任意根目录。您可以检测SD卡根并在那里写入。我建议在模拟器中进行调试,您可以在
.cn1
目录中轻松查看存储内容

看到了吗

要点是,你的应用程序的某些部分将始终安装在隐藏区域中,存储可能会在那里

如果您想将内容写入SD卡,可以使用
FileSystemStorage
API来实现,该API允许您写入任意根目录。您可以检测SD卡根并在那里写入。我建议在模拟器中进行调试,您可以在
.cn1
目录中轻松查看存储内容