刚刚在我的应用中尝试了新的本地数据存储功能,它一直在崩溃告诉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)
答案 0 :(得分:3)
解析Android更新日志
v1.5.1 - 2014年5月30日
修复了Local的各种错误 数据存储。
我遇到了类似的问题,但今天发布了新的Parse Android SDK 1.5.1版,我们应该检查一下,然后再试一次。