dgo*_*lka 2 eclipse android install logcat
当我尝试在S3上启动apk文件时,Eclipse中的LogCat会向我显示这些错误:
09-28 16:56:59.020: A/Environment(1967): Static storage paths aren't available from AID_SYSTEM
09-28 16:56:59.020: A/Environment(1967): java.lang.Throwable
09-28 16:56:59.020: A/Environment(1967): at android.os.Environment.throwIfSystem(Environment.java)
09-28 16:56:59.020: A/Environment(1967): at android.os.Environment.getExternalStorageDirectory(Environment.java)
09-28 16:56:59.020: A/Environment(1967): at com.samsung.android.MtpApplication.MtpReceiver.onReceive(MtpReceiver.java)
09-28 16:56:59.020: A/Environment(1967): at android.app.ActivityThread.handleReceiver(ActivityThread.java)
09-28 16:56:59.020: A/Environment(1967): at android.app.ActivityThread.access$1600(ActivityThread.java)
09-28 16:56:59.020: A/Environment(1967): at android.app.ActivityThread$H.handleMessage(ActivityThread.java)
09-28 16:56:59.020: A/Environment(1967): at android.os.Handler.dispatchMessage(Handler.java)
09-28 16:56:59.020: A/Environment(1967): at android.os.Looper.loop(Looper.java)
09-28 16:56:59.020: A/Environment(1967): at android.app.ActivityThread.main(ActivityThread.java)
09-28 16:56:59.020: A/Environment(1967): at java.lang.reflect.Method.invokeNative(Native Method)
09-28 16:56:59.020: A/Environment(1967): at java.lang.reflect.Method.invoke(Method.java)
09-28 16:56:59.020: A/Environment(1967): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
09-28 16:56:59.020: A/Environment(1967): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
09-28 16:56:59.020: A/Environment(1967): at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
有人能帮我吗?
此错误仅发生在Android 4.2.2,android.os.Environment上:
private static void throwIfSystem()
{
if (Process.myUid() == Process.SYSTEM_UID)
{
Log.wtf(TAG,
"Static storage paths aren't available from AID_SYSTEM",
new Throwable());
}
}
public static File getExternalStorageDirectory()
{
throwIfSystem();
return sCurrentUser.getExternalStorageDirectory();
}
Run Code Online (Sandbox Code Playgroud)
我开发了一个需要系统权限的应用程序,因此我必须在AndroidManifest.xml中声明android:sharedUserId ="android.uid.system"并使用相关ROM的platform.x509.pem,platform.pk8签署我的应用程序,然后我写入外部存储器,发生错误.
但我很困惑,也许你运行使用Galaxy S3的platform.x509.pem,platform.pk8文件签名的应用程序?
因为我的应用程序只在Android 4.2.2的自定义安卓板中运行,所以Android框架工程师删除了throwIfSystem()方法并修改了我的应用程序的SD卡写入权限.
// Android模拟器
d --- rwxr-x system sdcard_rw 1970-01-01 00:00 sdcard
// Android自定义Pad
drwxrwxr-x system sdcard_rw 2014-09-01 19:07 sdcard
注意:除了Android 4.2.2,其他Android版本(Android 4.4.2除外),没有上面的错误,但像我的应用程序的情况相同.官方的Android系统将不允许该应用程序声明android:sharedUserId ="android.uid.system"在AndroidManifest.xml中并用platform.x509.pem签名,platform.pk8将相关ROM写入SD卡.系统会提醒你权限被拒绝.也许这是一个Android系统的安全机制.但是当我在Android 4.4.2上的Android官方模拟器上测试我的应用程序时,它运行正常,我不知道为什么.
也许你的情况与我的情况不一样.但希望对你有所帮助!如果您可以阅读中文,您可以在我的个人博客中阅读这篇文章.它更多地讲述了上面的错误.
| 归档时间: |
|
| 查看次数: |
1455 次 |
| 最近记录: |