小编use*_*423的帖子

Android SharedPreferences String Set - 应用程序重启后删除了一些项目

我在共享首选项中保存了一个字符串集,如果我把它读出来就可以了.我开始其他活动,回去再读一遍,没关系.如果我关闭应用程序,然后重新启动它,我会得到设置,但只有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)

我只是无法理解怎么可能发生,在应用程序运行时完美存储所有项目,然后在重新启动后并非所有项目都在集合中.而且我认为如果所有物品都被移除,它可能比一些物品消失更可接受,而且还有一件物品.有解释吗?

android sharedpreferences

33
推荐指数
3
解决办法
2万
查看次数

如何使用JAX-RS转发请求?

我想将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上下文中是合法的)。

如何转发请求?

java servlets http jax-rs forward

5
推荐指数
1
解决办法
5544
查看次数

仅使用Jenkins构建的Android ZBar异常

我有一个带有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文件.

android android-build apk jenkins

5
推荐指数
2
解决办法
2072
查看次数