在三星Galaxy Mini (Android 2.3)上,我无法通过Eclipse安装100+ MB的APK(总是出现一些错误,没有什么真正的帮助;通常它说insufficient_storage,即使有300+ MB的可用空间在外部存储(即在这种情况下在SD卡上,并且安装位置设置为PREFER_EXTERNAL)。
所以我通过USB连接将APK复制到SD卡上,然后从PC上卸载USB。然后用文件管理器打开APK,并安装它。在安装之前,它不显示 WRITE_EXTERNAL_STORAGE要批准的权限(可能这就是问题所在?)
当我运行它时,当试图写入外部存储中的文件夹(getExternalFilesDir(null)
)时,我得到以下错误:
"无法创建外部文件目录"
在logcat中显示两次。
我使用Environment.getExternalStorageState()
做任何事情之前,它返回MEDIA_MOUNTED
正确。它被记录在logcat中,与出现"无法创建…"日志的位置相同。重新启动手机没有帮助,与PC切换USB连接也没有(这些在其他stackoverflow主题中提到)。
我的Android清单的开头如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="preferExternal"
package="com.example.apps.iik"
android:versionCode="1"
android:versionName="1.0.0" >
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="14" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
<uses-feature android:name="android.hardware.screen.landscape" />
APK安装不显示write_external_storage权限是否正常?也许应用程序是在没有这个许可的情况下安装的?但据我注意到,在其他设备上,它根本不能将外部存储识别为"已挂载"。
在Android 2.3中,许多oem已经为低存储设置了自己的阈值(如果APK大小*4>可用存储,Moto设备将不允许您从商店安装)
如果你通过一些文件管理器或应用程序安装程序安装,它可能不会显示任何权限。但是你总是可以通过进入设置>应用程序,点击你的应用程序来查看权限。
同样,在写入文件之前,首先通过file.createNewFile()
创建它。