解析本地数据存储区和ParseQueryAdapter,导致启用固定时不允许使用方法

时间:2014-05-05 20:32:41

标签: android parse-platform

刚刚在我的应用中尝试了新的本地数据存储功能,它一直在崩溃告诉Method not allowed when pinning is enabled

具体来说,只要我设置了适配器listView.setAdapter(mAdapter),它就会崩溃。

我花了一些时间将ParseQueryAdapter定位为问题,因为LogCat没有提供太多线索。

因此,启用本地数据存储区是否无法使用ParseQueryAdapter?

除了不允许使用缓存查询之外,文档没有另外提及。

我的片段持有listview的onCreateView:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_circuit_select,
            container, false);

    ButterKnife.inject(this, rootView);
    mAdapter = new SelectMyCircuitAdapter(getActivity(),
            new SelectedCallback() {

                @Override
                public void circuitSelected(Circuit circuit) {
                    mSelectedCircuit = circuit;
                    startButton.setEnabled(true);
                }
            });

    listView.setAdapter(mAdapter); // <- HERE
    return rootView;
}

SelectMyCircuitAdapter的构造函数:

public SelectMyCircuitAdapter(Context context,
        SelectedCallback circuitSelectedCallback) {
     super(context, Circuit.class);
    this.mCircuitSelectedCallback = circuitSelectedCallback;
}

最后是LogCat:

05-05 20:00:15.975: E/AndroidRuntime(1910): FATAL EXCEPTION: main
05-05 20:00:15.975: E/AndroidRuntime(1910): java.lang.IllegalStateException: Method not allowed when Pinning is enabled.
05-05 20:00:15.975: E/AndroidRuntime(1910):     at com.parse.ParseQuery.checkPinningEnabled(ParseQuery.java:595)
05-05 20:00:15.975: E/AndroidRuntime(1910):     at com.parse.ParseQuery.getCachePolicy(ParseQuery.java:620)
05-05 20:00:15.975: E/AndroidRuntime(1910):     at com.parse.ParseQueryAdapter$3.done(ParseQueryAdapter.java:351)
05-05 20:00:15.975: E/AndroidRuntime(1910):     at com.parse.FindCallback.internalDone(FindCallback.java:45)
05-05 20:00:15.975: E/AndroidRuntime(1910):     at com.parse.FindCallback.internalDone(FindCallback.java:31)
05-05 20:00:15.975: E/AndroidRuntime(1910):     at com.parse.Parse$5$1.run(Parse.java:887)
05-05 20:00:15.975: E/AndroidRuntime(1910):     at android.os.Handler.handleCallback(Handler.java:725)
05-05 20:00:15.975: E/AndroidRuntime(1910):     at android.os.Handler.dispatchMessage(Handler.java:92)
05-05 20:00:15.975: E/AndroidRuntime(1910):     at android.os.Looper.loop(Looper.java:137)
05-05 20:00:15.975: E/AndroidRuntime(1910):     at android.app.ActivityThread.main(ActivityThread.java:5039)
05-05 20:00:15.975: E/AndroidRuntime(1910):     at java.lang.reflect.Method.invokeNative(Native Method)
05-05 20:00:15.975: E/AndroidRuntime(1910):     at java.lang.reflect.Method.invoke(Method.java:511)
05-05 20:00:15.975: E/AndroidRuntime(1910):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-05 20:00:15.975: E/AndroidRuntime(1910):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-05 20:00:15.975: E/AndroidRuntime(1910):     at dalvik.system.NativeStart.main(Native Method)

1 个答案:

答案 0 :(得分:3)

  

解析Android更新日志

     

v1.5.1 - 2014年5月30日

     

修复了Local的各种错误   数据存储。

我遇到了类似的问题,但今天发布了新的Parse Android SDK 1.5.1版,我们应该检查一下,然后再试一次。