gpt4 book ai didi

android - 在 Galaxy S3 上安装我编写的应用程序时出错

转载 作者:搜寻专家 更新时间:2023-11-01 08:02:30 26 4
gpt4 key购买 nike

当我尝试在我的 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)

有人可以帮助我吗?

最佳答案

这个错误只发生在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();
}

我开发了一个需要系统权限的应用程序,所以我必须在AndroidManifest.xml中声明android:sharedUserId="android.uid.system"并用platform.x509.pem,相关的ROM,然后我写入外部存储,发生错误。

但我很困惑,也许您运行的应用程序使用 Galaxy S3 的 platform.x509.pem、platform.pk8 文件签名?

因为我的应用只能运行在Android 4.2.2的定制android pad上,所以Android框架工程师去掉了throwIfSystem()方法并修改了我应用的SD卡写权限。

//安卓模拟器

d---rwxr-x 系统 sdcard_rw 1970-01-01 00:00 sdcard

//安卓自定义Pad

drwxrwxr-x 系统 sdcard_rw 2014-09-01 19:07 sdcard

注意:除了Android 4.2.2,其他Android版本(Android 4.4.2除外),没有出现上述错误,但像我的应用一样的情况。Android官方系统不允许该应用在AndroidManifest.xml中声明android:sharedUserId="android.uid.system"并用platform.x509.pem签名,相关ROM的platform.pk8写入SD卡。系统会提示权限被拒绝。也许这是Android系统的一种安全机制。但是当我在Android 4.4.2上的Android官方模拟器上测试我的应用程序时,它运行正常,我不知道为什么。

也许你的情况和我的不太一样,但希望对你有所帮助!如果你会看中文,你可以在我的个人博客中阅读这篇文章。它详细说明了上述错误。

http://www.ifeegoo.com/android-debug-static-storage-paths-are-not-available-from-aid-system-error-analysis-and-solution.html

关于android - 在 Galaxy S3 上安装我编写的应用程序时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19068361/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com