Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从字符串读取时的java.lang.IllegalArgumentException_Java_Android - Fatal编程技术网

从字符串读取时的java.lang.IllegalArgumentException

从字符串读取时的java.lang.IllegalArgumentException,java,android,Java,Android,在我的项目中,我想从字符串中读取我的包名,但出现以下错误。 在我更改may代码之前,它是这样的: static { sURLMatcher.addURI("com.nooshindroid.yastashir2.model", "alarm", ALARMS); sURLMatcher.addURI("com.nooshindroid.yastashir2.model", "alarm/#", ALARMS_ID); } 在我的应用程序课程中,我得到如下结果: public

在我的项目中,我想从字符串中读取我的包名,但出现以下错误。 在我更改may代码之前,它是这样的:

static {
    sURLMatcher.addURI("com.nooshindroid.yastashir2.model", "alarm", ALARMS);
    sURLMatcher.addURI("com.nooshindroid.yastashir2.model", "alarm/#", ALARMS_ID);
}
在我的应用程序课程中,我得到如下结果:

 public static String context;
@Override
public void onCreate() {
    context = getApplicationContext().getResources().getString(R.string.package_app);
 }
当我这样改变它时:

  static {
    sURLMatcher.addURI(AlarmApplication.context+".model", "alarm", ALARMS);
    sURLMatcher.addURI(AlarmApplication.context+".model", "alarm/#", ALARMS_ID);
}
这是我的错误:

Unable to create application com.nooshindroid.yastashir2.AlarmApplication: java.lang.IllegalArgumentException: Unknown URL content://com.nooshindroid.yastashir2.model/alarm
                                                 at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4809)
                                                 at android.app.ActivityThread.access$1600(ActivityThread.java:154)

静态初始化块中的代码在应用程序的onCreate之前运行。因此,当您将URI添加到匹配器时,
上下文
字段仍然是
null


您是否可以在静态初始化中使用
BuildConfig.APPLICATION\u ID+“.model”
<代码>构建配置
字段在构建时写入,因此在静态初始化块中可用。如果
APPLICATION\u ID
不适合您的需要,您可以始终在
build.gradle
文件中添加一个自定义构建配置字段。

没错。我使用BuildConfig.APPLICATION\u ID,效果很好。非常感谢…当你找到一个有用的答案时,你应该投票表决。如果这是对你提出的问题的回答,它解决了你的问题,那么你也应该接受它。这样,如果有人有同样的问题,并找到了这个页面,他们就会知道这个答案是有效的。