从字符串读取时的java.lang.IllegalArgumentException
在我的项目中,我想从字符串中读取我的包名,但出现以下错误。 在我更改may代码之前,它是这样的:从字符串读取时的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
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,效果很好。非常感谢…当你找到一个有用的答案时,你应该投票表决。如果这是对你提出的问题的回答,它解决了你的问题,那么你也应该接受它。这样,如果有人有同样的问题,并找到了这个页面,他们就会知道这个答案是有效的。