使用 getFilesDir() 时应用程序上下文返回 null

2024-03-27

我不知道为什么会发生这种情况。当我检查 DDMS 时也没有文件目录。我正在尝试在我的应用程序子类中访问此文件夹。知道为什么会发生这种情况吗? 我需要应用程序上下文是全局的,这样我就可以在不扩展 Activity 的类上使用。

package mci.multipratic;

import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;
import android.app.Application;
import android.content.Context;

public class MultiPraticApp extends Application
{   
private static MultiPraticApp instance;
public static MultiPraticAppHelper helper;

public MultiPraticApp()
{       
    instance = MultiPraticApp.this;
    helper = new MultiPraticAppHelper();
}   

public static Context getContext()
{       
    return instance;
}
}

class MultiPraticAppHelper
{
private int offsets = 0;
private int productIndex = 0;
private int recipeId = 0;
private Recipe selectedRecipe;  
private Properties configFile;

public MultiPraticAppHelper()
{
    Context context = MultiPraticApp.getContext();                      

    String path = context.getFilesDir() + "/config.properties";

    File file = new File(path);

    try
    {
        FileInputStream fis = new FileInputStream(file);

        Properties properties = new Properties();
        properties.load(fis);

        fis.close();
    }catch(Exception ex)
    {
        ex.printStackTrace();
    }
}

我的清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="mci.multipratic"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="4" />  

<application android:name=".MultiPraticApp"        
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name">
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" 
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />                
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name=".EnableProductsActivity"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">          
    </activity>

    <activity
        android:name=".RecipeSelectionActivity"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">           
    </activity>

    <activity
        android:name=".ProductAdjustsActivity"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
        >
    </activity>               
</application>  

我相信问题是您正在尝试在构造函数中进行初始化。将构造函数中的代码移至 Application 类的 OnCreate 中。

@Override
public void onCreate() {
  super.onCreate();
  if(instance != null)
     instance = MultiPraticApp.this;
  if(helper != null)
     helper = new MultiPraticAppHelper();

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 getFilesDir() 时应用程序上下文返回 null 的相关文章

  • 将 emoji 替换为适当的 java 代码

    我正在开发一个简单的java程序 它可以接受这样的字符串 停止 你违反了 法律 但是现在 你 并将每个表情符号替换为适当的 java 字符 我不知道该怎么称呼他们 这是一个例子 汽车表情符号 将替换为 uD83D uDE97 这允许我有一个
  • 在InputMethodService 外部调用InputMethodManager.setInputMethod(IBinder token, String id)。哪里可以找到代币?

    我想通过单击按钮在我的 EditText 上显示 Google 语音输入 IME 所以 根据this http android developers blogspot ru 2011 12 add voice typing to your
  • 如何将 wsdl 内部架构设置为 Jaxb2Marshaller 以验证我所做的每篇文章?

    我正在使用 SOAP Web 服务 在调用它之前我必须验证每个 xml 帖子 所以我正在使用 The CXF codegen 插件生成POJO树结构 第三部分 wsdl xxxx soap service wsdl 一个类实现Web服务网关
  • Android - 具有可序列化对象的 SharedPreferences

    我知道 SharedPreferences 有putString putFloat putLong putInt and putBoolean 但我需要存储一个类型的对象Serializable in SharedPreferences 我
  • 在 javafx 中注册鼠标处理程序,但处理程序不是内联的

    我有一个 JavaFX 应用程序变得有点大 我想保持代码的可读性 我有一个折线图 我希望内置缩放功能 该功能在单击鼠标时发生 我知道我需要向图表注册鼠标侦听器 我无法从 Oracle 示例中弄清楚什么 即如下所示 http docs ora
  • 为什么 Java 中的 hashCode() 可以对不同对象返回相同的值?

    引用我正在读的书中的一段话首先Java http www amazon co uk Head First Java Kathy Sierra dp 0596009208 关键是 哈希码可以相同 但不一定保证对象相等 因为使用的 哈希算法 h
  • 比较和删除列表和数组java中不存在的元素

    我有一个String数组和一List
  • 如何在 Ivy 中使用不同的分类器下载多个 Maven 依赖项?

    我试图依靠Neo4j 服务器 jar http repo neo4j org content repositories snapshots org neo4j app neo4j server 1 5 SNAPSHOT neo4j serv
  • 如何使用 UUID 生成唯一的正 Long

    我需要为我的数据库主键列生成唯一的长 ID 我以为我可以用UUID randomUUID getMostSignificantBits 但有时它也会产生一些负多头 这对我来说是个问题 是否可以从 UUID 中仅生成正长 将会有数十亿个条目
  • 使用antlr4获取预处理器行并解析C代码

    我正在使用 Antlr4 来解析 C 代码 并使用以下语法来解析 链接到 C g4 https github com antlr grammars v4 blob master c C g4 上面的语法默认不提供任何解析规则来获取预处理器语
  • 获取证书链

    我正在 Java 中使用 X509 证书 给定一个证书 是否可以在签名层次结构中找到所有其他证书 直到找到根证书 我有一个证书文件 带有 cer扩展名 我想提取父签名证书 我想继续查找该证书的父证书 直到获得最终的自签名根证书 我已经检查了
  • Android - 保持用户登录状态

    我正在尝试使用 PHP 和 MySQLi for Android 进行登录 我不明白的是如何保持用户登录状态 我看到一个简单的教程 其中有人使用 SQLite 来保护信息 但我不知道这是否真的安全 如何保存用户信息以保持用户登录状态 谢谢
  • 从 Activity 调用选项卡式片段方法

    我有一项活动由三个片段组成 这些片段使用使用 PagerAdapter 的操作栏选项卡 我想要做的是从主活动访问活动选项卡式片段中的方法 我已经尝试了下面的代码 但这只是将片段返回为空 所以我猜它无法在选项卡中找到它 NPListFragm
  • Android Windows:它们何时以及如何创建?

    我已经阅读了标准的 Windows 相关文档并翻阅了 一堆源代码 试图理解 Android 如何以及何时 窗口已创建 我相信我已经拥抱它并愿意 对其进行验证或更正 据我所知 只有两种方法可以获得 Window 对象的句柄 1 Activit
  • WebSocketStompClient 将无法连接到 SockJS 端点

    我正在尝试新的 从版本 4 2 开始 java STOMP 客户端支持 我的出发点是入门指南 使用 WebSocket 构建交互式 Web 应用程序 http spring io guides gs messaging stomp webs
  • Android 图标与徽标

    The
  • 随着速度变化,速度表针规绕其中心旋转

    Hi all 我编写了一个应用程序 其中有一个速度计 其指针垂直设置为 90 度 我试图以每秒变化的速度绕其中心旋转指针 我在文本视图中显示变化的速度 从 0 到 120 随机 我正在从远程服务获取速度并显示在文本视图中 因此 当速度发生变
  • 我的 apk 文件在模拟器中的位置

    我在 eclipse android 中编写了一个小程序 现在我安装并运行我的程序 它是一个 apk 现在我想知道我的 apk 文件在哪里 我什至想将它 拉 到我的系统中 是否可以 如果是这样请帮助我 如果您只想将 apk 安装在手机或类似
  • 在Java的System.out中以表格格式输出

    我正在从数据库获取结果 并希望将数据作为 Java 标准输出中的表输出 我尝试过使用 t 但我想要的第一列的长度变化很大 有没有办法将其显示在类似输出的漂亮表格中 Use System out format http java sun co
  • 如何检测文本是否可读?

    我想知道是否有一种方法可以告诉给定的文本是人类可读的 我所说的人类可读的意思是 它有一些含义 格式就像某人写的文章 或者至少是由软件翻译器生成的供人类阅读的文章 这是背景故事 最近我正在制作一个应用程序 允许用户将短文本上传到数据库 在部署

随机推荐

  • 如何在 Excel VBA 中对字符串进行 URL 编码?

    是否有内置方法可以在 Excel VBA 中对字符串进行 URL 编码 或者我是否需要手动执行此功能 不 没有任何内置内容 直到 Excel 2013 看到这个答案 https stackoverflow com a 24301379 18
  • Java COM 桥

    我有一个超低延迟程序 需要与 Windows COM 组件交互 最快的方法是什么 使用像 JACOB 这样的 COM 桥或编写本机 COM 库并使用像 ZeroMQ 这样的消息总线发送消息 如果您使用 ZeroMQ 您将处理两个进程 将消息
  • 使用 Guid 和自定义表名称以及 Asp.net Identity 1.1 Alpha 创建自定义实现

    我从不同的问题中得出结论 在我提出问题时在下面列出 我想做五件事 据我从这些问题和答案中可以看出 所有这些都可以在我的 OnModelCreating 方法中完成 Preface 我正在使用 Asp Net Identity 1 1 alp
  • 叉子和线程有什么区别?

    谁能解释一下叉子和线程之间的区别 分叉给你一个全新的进程 它是当前进程的副本 具有相同的代码段 当内存映像发生变化时 通常这是由于两个进程的不同行为 您会分离内存映像 写入时复制 但可执行代码保持不变 任务不会共享内存 除非它们使用某些内存
  • 配置 Xcode 4 工作区以在需要时构建依赖项的正确方法是什么?

    我的情况很简单 一个工作区有两个兄弟项目 一个主 iOS 应用程序和一个构建该应用程序使用的多个静态库目标的项目 以下是我配置构建的方式 将主应用程序的构建设置中的 用户标题搜索路径 指向库项目位置 通过源树 在我的应用程序的主要目标的编辑
  • 如何将json数组插入mysql数据库

    您好 我正在尝试将 json 数组插入到我的 MySQL 数据库中 我正在从我的 iPhone 传递数据 我已将数据转换为 json 格式 并且使用未插入到我的服务器中的 url 将数据传递到我的服务器 这是我的 json 数据 姓名 0
  • SKshapenode 没有响应Physicsbody

    我创建了一个SKShapeNode我已经分配了一个physicsBody到它 然而 当有接触时它不会被触发 的制作SKShapeNode code SKShapeNode gravityline SKSpriteNode lolo SKSp
  • 堆积条形图上的R ggplot标签[重复]

    这个问题在这里已经有答案了 我需要将数据放入堆栈条形图中 但是当我添加计数标签时 一些标签位于类别上方 一些标签位于类别下方 我尝试修改 geom text 函数的位置参数但无济于事 下面是一个可重现的示例 显示了该类别上方 下方 类别座位
  • 如何使用 Pipeline 引用 Jenkinsfile 目录?

    我有一个 groovy 文件 我想从 Jenkinsfile 运行 ie load script groovy 但是 如果该文件与 Jenkinsfile 存储在同一目录中 我不确定如何引用该文件 我正在从 git 加载 Jenkinsfi
  • 使用 stripplot 在 seaborn 中用中线绘制点

    我在seaborn中有以下情节 df pandas DataFrame sample X X X Y Y Y value 0 2 0 3 0 4 0 7 0 75 0 8 rep a b c a b c plt figure ax sns
  • 在 HQL 或 Criteria 中获取 DATEPART?

    如何使用 HQL 或 Criteria 获取时间的 DATEPART 我用谷歌搜索并得到了一些提示 但还不够 如果有人以前经历过 请告诉我们 提前致谢 看看这篇关于在nhibernate中使用sql函数 http ayende com Bl
  • mySQL 每日从一个表备份到另一个表

    如果我有两个具有相同定义的表 我将如何每天备份其中的数据 我可以使用 mySQL Administrator 执行类似的操作吗 每天中午 12 00 将 main table 中的所有行复制到 backup table 如果是增量备份会更好
  • Android 上的辅助功能测试自动化

    我最近开始研究 Android 上的自动化辅助功能测试 网络上没有太多信息 有人探索过这个或者目前正在这样做吗 如果是这样 您能分享您的想法 方法吗 似乎 Android 的 uiautomator 依赖于辅助功能来工作 但它不支持测试辅助
  • FullCalendar:事件最初未从函数调用(AJAX)渲染

    我已将 FullCalendar 配置为从 AJAX 请求中提取其事件 但首次加载页面时它们不会在日历上呈现 document ready function sh1client new Array sh2client new Array s
  • 为什么回调在 Ruby on Rails 中使用符号

    我很难理解何时以及何时不应该在 Rails 中使用符号 我知道符号与没有许多方法的字符串并没有太大不同 我还知道这些符号是很好的键 因为同名的符号在内存中占据一个地址 我很难理解为什么 Rails 决定在某些情况下使用符号 如果我有回调 b
  • 主机名未使用 Winsock 转换为 IP 地址

    getaddrinfo 不会将主机名转换为 IP 地址 因此不会connect 到服务器 我的实现有问题吗 编译时没有警告消息 这个函数调用的是connect正确的 connect client result gt ai addr resu
  • 在 Python 中编写仅附加 gzip 日志文件

    我正在构建一项服务 在其中记录来自多个源的纯文本格式日志 每个源一个文件 我不打算轮换这些日志 因为它们必须永远存在 为了使这些永远存在的文件更小 我希望我可以在飞行中对它们进行 gzip 压缩 由于它们是日志数据 因此文件压缩得很好 在
  • 当对象包含 ng-repetate 时,如何使用 angularFire 保存 Firebase 对象 $asArray()

    我最近从 angularfire 0 6 切换到 0 8 0 我在保存包含数组本身的列表项时遇到问题 我的对象account看起来像这样 JQruasomekeys0nrXxH created 2014 03 23T22 00 10 176
  • Python 与格式 '%Y-%m-%dT%H:%M:%S%Z.%f' 不匹配

    我尝试在Python中将字符串转换为日期时间对象 但我找不到我的格式有任何问题 Y m dT H M S Z f import datetime datetime datetime strptime 2019 11 19T17 22 23
  • 使用 getFilesDir() 时应用程序上下文返回 null

    我不知道为什么会发生这种情况 当我检查 DDMS 时也没有文件目录 我正在尝试在我的应用程序子类中访问此文件夹 知道为什么会发生这种情况吗 我需要应用程序上下文是全局的 这样我就可以在不扩展 Activity 的类上使用 package m