我在共享首选项中保存了一个字符串集,如果我把它读出来就可以了.我开始其他活动,回去再读一遍,没关系.如果我关闭应用程序,然后重新启动它,我会得到设置,但只有1项而不是4.它会一直发生.有一个已知的问题吗?我该怎么办?
在类中,在应用程序的oncreate方法中创建的内容我有一个SharedPreferences和一个SharePreferences.Editor变量.我在保存和加载方法中使用它们.
public void saveFeedback(FeedbackItem feedbackItem) {
checkSp();
Set<String> feedbackSet = getFeedbacksSet();
if(feedbackSet == null){
feedbackSet = new HashSet<String>();
}
JSONObject json = createJSONObjectfromFeedback(feedbackItem);
feedbackSet.add(json.toString());
ed.putStringSet(CoreSetup.KEY_FEEDBACK, feedbackSet);
ed.commit();
}
public Set<String> getFeedbacksSet(){
checkSp();
Set<String> ret = sp.getStringSet(CoreSetup.KEY_FEEDBACK, null);
return ret;
}
private void checkSp(){
if(this.sp == null)
this.sp = applicationContext.getSharedPreferences(applicationContext.getPackageName(), Context.MODE_PRIVATE);
if(this.ed == null)
this.ed = this.sp.edit();
}
Run Code Online (Sandbox Code Playgroud)
我只是无法理解怎么可能发生,在应用程序运行时完美存储所有项目,然后在重新启动后并非所有项目都在集合中.而且我认为如果所有物品都被移除,它可能比一些物品消失更可接受,而且还有一件物品.有解释吗?
我想将REST请求转发到另一台服务器。
我将JAX-RS与Jersey和Tomcat一起使用。我尝试通过设置See Other响应和添加Location标题来进行尝试,但这并不是真正的前进。
如果我使用:
request.getRequestDispatcher(url).forward(request, response);
Run Code Online (Sandbox Code Playgroud)
我得到:
java.lang.StackOverflowError:如果网址是相对路径java.lang.IllegalArgumentException:路径http://website.com不能以/字符开头(我认为转发仅在同一servlet上下文中是合法的)。如何转发请求?
我有一个带有QR扫描活动的android项目.我使用ZBar库:http://sourceforge.net/projects/zbar/files/AndroidSDK/
如果项目是在带有exlipse的PC或Mac上构建的,那么该应用程序可以正常工作.如果它是由jenkins构建的(来自git的相同来源)应用程序崩溃.
我得到的例外是:
at controller.gui.activity.QRScanActivity.onCreate(Unknown Source)
at android.app.Activity.performCreate(Activity.java:4465)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
at android.app.ActivityThread.access$600(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NoSuchFieldError: no field with name='peer' signature='J' in class Lnet/sourceforge/zbar/ImageScanner;
at net.sourceforge.zbar.ImageScanner.init(Native Method)
at net.sourceforge.zbar.ImageScanner.<clinit>(Unknown Source)
... 16 more
Run Code Online (Sandbox Code Playgroud)
我使用演示应用程序作为基础.
这是Jenkins配置问题吗?
Zbar库不仅仅是一个jar文件,它是一个带有jni的C库.所以我有一个jar文件和3个文件夹(我想不同的架构),他们有一个libiconv.so和一个libzbarjni.so文件.