我使用Android
在我的Parse
应用程序中收到以下错误:
You must register this ParseObject subclass before instantiating it.
在我的Application
对象中,我在onCreate
内执行以下操作:
Parse.enableLocalDatastore(this);
Parse.initialize(this, "code", "code");
那为什么我仍然会收到此错误?它昨天工作正常,但它突然停止了工作。
这是我的清单文件:
<application
android:name=".MyApplication"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
....
logcat的:
java.lang.IllegalArgumentException: You must register this ParseObject subclass before instantiating it.
at com.parse.ParseObject.<init>(ParseObject.java:157)
at com.parse.ParseObject.<init>(ParseObject.java:119)
at usmaan.app.models.Game.<init>(Game.java:25)
at usmaan.app.models.Game.to(Game.java:86)
at usmaan.app.adapters.GamesAdapter.getView(GamesAdapter.java:47)
at android.widget.AbsListView.obtainView(AbsListView.java:2344)
at android.widget.ListView.makeAndAddView(ListView.java:1864)
答案 0 :(得分:15)
你必须打电话
ParseObject.registerSubclass(YourClassName.class);
在打电话之前
Parse.initialize()
。
此外,您需要像这样注释您的自定义类:
@ParseClassName("YourClassName")
public class YourClassName extends ParseObject
{
}
最后,您的自定义类需要一个默认的no-args构造函数才能被ParseObject
注册。
答案 1 :(得分:1)
你还必须把它放在你的Manifest中:
<application
android:name="ParseApplication"
android:allowBackup="true"
android:icon="@drawable/logo"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
YOUR ACTIVITY 1
/>
<activity
YOUR ACTIVITY 2
/>
</application>
然后尝试交换以下这些行
Parse.enableLocalDatastore(this);
Parse.initialize(this, "key", "key");
像这样:
Parse.initialize(this, "key", "key");
Parse.enableLocalDatastore(this);