说明:

一个app访问另外一个app的SharedPreferences,程序启动之后没有显示界面就卡死了,无任何提示信息。

错误原因:

应用调用createPackageContext失败,但是也不给出异常信息;

/** SharedPreferences sp = getSharedPreferences("ethernet",*      //Context.MODE_WORLD_WRITEABLE);*      Context.MODE_WORLD_READABLE | Context.MODE_WORLD_WRITEABLE);*/Context ethernetAppContext = null;
try {ethernetAppContext = createPackageContext("com.dog.ethernet", Context.CONTEXT_IGNORE_SECURITY);
} catch (NameNotFoundException e) {new AlertDialog.Builder(this).setTitle("ERROR").setMessage("Please install ethernet application.").setPositiveButton("confirm", null ).show();  System.exit(-1);e.printStackTrace();
}   SharedPreferences sharedPreferences = ethernetAppContext.getSharedPreferences("ethernet",  Context.MODE_WORLD_READABLE | Context.MODE_WORLD_WRITEABLE);
Log.e("info", "-------------------------------------------------");
Log.e("info", sharedPreferences.getString("conn_mode", ""));
Log.e("info", sharedPreferences.getString("mIpaddr", ""));
Log.e("info", sharedPreferences.getString("mDns", ""));
Log.e("info", sharedPreferences.getString("mProxyIp", ""));
Log.e("info", sharedPreferences.getString("mProxyPort", ""));
Log.e("info", sharedPreferences.getString("mProxyExclusionList", ""));
Log.e("info", "-------------------------------------------------");
  • 最后通过查看/data/data/路径下的包名,检查到com.dog.ethernet包名不存在,于是修改为正确的包名就正常了。
  • 将当前包下生成ethernet SharedPreferences的代码注释了才能获取到正确的数据,如果不注释掉,好像获取的数据是当前包下的ethernet SharedPreferences,花了挺长时间才确定这个问题。

获取结果

E/info    ( 5353): -------------------------------------------------
E/info    ( 5353): manual
E/info    ( 5353): 10.10.10.10
E/info    ( 5353): 8.8.8.8
E/info    ( 5353): -------------------------------------------------

Android.mk

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := $(call all-java-files-under, com)LOCAL_PACKAGE_NAME := ethernetCF
LOCAL_CERTIFICATE := platforminclude $(BUILD_PACKAGE)# Use the folloing include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))

Android获取SharedPreferences失败,且App无法启动相关推荐

  1. android反射开启通知_作为Android开发者 你真的知道app从启动到主页显示的过程吗?...

    前言 之前我跟大家说过,在一个夜黑风高的晚上,我的男同事突然给我发了一条微信,我点开来看,他竟然问我Android从按下开机键到启动到底发生了什么?此刻我的内心如下图: 然后就在昨天晚上,我又收到了他 ...

  2. android splash白屏_android app 优化启动体验, 不闪白屏并且快速展示 splash

    要优化 app 的启动体验, 首先在清单文件中第一个启动的 SplashActivity 使用了 theme 的方式. android:name="com.ingdan.xxx.ui.act ...

  3. 上课点名app Android,Android开发高校点名签到app之启动页(1)

    开发环境:Window 7,JDK 1.8,Android studio 2.1.2 基于Android 4.0.3(API 15) 一个优秀的APP启动页往往是抓取用户兴趣的关键,APP启动后首先进 ...

  4. Android 获取用户安装的app信息

    在电子市场类软件中,管理应用程序要获取已经安装的应用程序列表,下面提供两种方法,参考了 http://www.cnblogs.com/mengshu-lbq/archive/2010/09/09/18 ...

  5. android 获取已安装应用(App)列表

    效果图 获取手机上已安装应用列表,将获取到的信息用集合返回,可以自己定义是否过滤系统应用,Appinfo是一个实体类,包含应用的名称 包名 图标icon等等 /*** 获取手机已安装应用列表* @pa ...

  6. android 获取已安装 错误代码,android获取手机已经安装的app信息

    Android获取手机已安装APP(系统/非系统) 效果图 主体代码 private ListView mlistview; private ListpackageInfoList; private ...

  7. Android Studio运行app,按HOME键回到桌面,再次点击app图标启动再次打开启动页面解决方案

    背景 app有一个启动页面MainActivity,还有其他的页面OtherActivity(是通过启动页中按钮点击跳转过来的) MainActivity的启动模式为android:launchMod ...

  8. c++builder启动了怎么停止_App 竟然是这样跑起来的 —— Android App/Activity 启动流程分析...

    在我的上一篇文章: AJie:按下电源键后竟然发生了这一幕 -- Android 系统启动流程分析​zhuanlan.zhihu.com 我们分析了系统在开机以后的一系列行为,其中最后一阶段 AMS( ...

  9. [Android] 获取设备的APP信息

    为什么80%的码农都做不了架构师?>>>    (1)获取设备安装的APP列表 主要有两个方法: public abstract List<ApplicationInfo> ...

最新文章

  1. 更新 Ubuntu 系统,避免报错「校验和不符」
  2. 【转载】数据库操作:添加、插入、更新语句
  3. Hibernate应用程序级可重复读取
  4. vue接收json数据_Vue之使用ajax获取json数据,并用v-for循环显示在表格中
  5. iPhone未来怎么走?将融入脸部以及指纹辨识系统
  6. Hazelcast更换CEO,承诺继续造福开源社区
  7. VS2012下基于Glut 绘制矩形管示例程序:
  8. Service的使用
  9. python爬大学生就业信息报告_Python语言爬虫——Python 岗位分析报告
  10. 谷歌翻译api_解救科研民工!史上最强大的翻译神器,助你日读10篇不是梦~~
  11. (附源码)node.js外卖平台 毕业设计 151448
  12. 【NOIP2006】【Luogu1063】能量项链
  13. Ajax传JSON对象报错:JSON parse error: Unrecognized token ‘ids‘: was expecting (‘true‘, ‘false‘ or ‘null‘);
  14. 【机器人学】牛顿-欧拉动力学方程迭代形式
  15. 什么是5G?它能为我们带来什么样的便利?思维导图《5G时代》给你新认识
  16. 2021级程序设计ICODING答案分享
  17. make出错,编译通不过的解决办法
  18. 2021年南京大学842考研-软件工程部分代码设计题
  19. useRoutes与React.lazy的使用
  20. 两条命令解决移动硬盘无法弹出的问题

热门文章

  1. 领导让我重写测试代码,我该怎么办?
  2. 我的六年软件测试感悟... 测试人的一生。算是摸透了软件测试这一行
  3. 听说你不会用datetime处理时间?
  4. 计算机图形学是指使用计算机通过,【填空题】计算机图形学是指使用计算机通过()在显示设备上构造出图形来。...
  5. pytorch 测试每一类_2D UNet++ VGGBlock脑胶质瘤分割BraTs + Pytorch实现
  6. Bose soundlink mini 2, 闪红灯的解决办法
  7. pid调节软件_(四)差分底盘设计——5.底盘PID控制参数整定
  8. python的from_bytes属性_Python parse.quote_from_bytes方法代碼示例
  9. Java小项目:坦克大战(二)
  10. 在mac上安装cgal4.11时,QT5 和qglviewer的设置