NoClassDefFoundError: com.parse.ParseObject$1
NoClassDefFoundError: com.parse.ParseObject$1
我 运行 在 Android 4.4、4.3 和 4.2 上遇到了 NoClassDefFoundError。我整天都在尝试修复它,但无济于事。我试过更改 targetSdkVersion、Parse 版本、使用 jar 而不是 Gradle 导入 Parse 库,以及清理和重建项目。一切都适用于 Android 5.0 及更高版本。
我使用的是 Parse 版本 1.12.0
CompileSdkVersion 23
构建工具版本 23.0.2
minSdkVersion 17
targetSdkVersion 23
这是我的堆栈跟踪。它在第一次尝试注册 ParseObject.
的子 class 时崩溃
01-13 12:18:26.500 1347-1347/? E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.parse.ParseObject
at com.parse.ParseObject.<clinit>(ParseObject.java:316)
at com.company.myapp.utils.Application.onCreate(PensterApplication.java:36)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4444)
at android.app.ActivityThread.access00(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
这是崩溃的应用程序 class。
我已将 class 名称在线更改为 post
public class myApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
FacebookSdk.sdkInitialize(this);
// Enable Local Datastore.
Parse.enableLocalDatastore(this);
// Parse classes that need registering
ParseObject.registerSubclass(aaa.class); //error happens here
ParseObject.registerSubclass(bbb.class);
ParseObject.registerSubclass(ccc.class);
ParseObject.registerSubclass(ddd.class);
ParseObject.registerSubclass(eee.class);
ParseObject.registerSubclass(fff.class);
ParseObject.registerSubclass(ggg.class);
ParseObject.registerSubclass(hhh.class);
ParseObject.registerSubclass(iii.class);
ParseObject.registerSubclass(jjj.class);
Parse.initialize(this, PARSE_APPLICATION_ID, PARSE_CLIENT_KEY);
//set a default acl so that default is not public read.write
if (ParseUser.getCurrentUser() != null) {
ParseACL defaultACL = new ParseACL(ParseUser.getCurrentUser());
defaultACL.setPublicReadAccess(false);
defaultACL.setPublicWriteAccess(false);
ParseACL.setDefaultACL(defaultACL, true);
}
// Save this installation
ParseInstallation.getCurrentInstallation().saveInBackground();
ParseFacebookUtils.initialize(this);
ParseTwitterUtils.initialize(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET);
}
}
如果知道出了什么问题,我们将不胜感激。
这可能是由于:
aaa
(可能是 ParseObject
的子类)是使用与部署的库版本不同的 ParseObject
版本构建的,或者
myApplication
正在使用与部署的库版本不同的 ParseObject
版本构建。
更有可能是后者。
我从友好的解析人员那里得到了他们 github 存储库的一些帮助。
我的问题:
https://github.com/ParsePlatform/Parse-SDK-Android/issues/342
我的问题中引用的问题:
https://github.com/ParsePlatform/Parse-SDK-Android/issues/213
引用问题中引用的堆栈溢出问题。 (这就是帮助我解决问题的原因。)
Crash: java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$layout
原来是 multidex 的问题。我需要扩展 MultiDexApplication 而不是 Application。我还在混淆器规则中添加了一些内容。
我 运行 在 Android 4.4、4.3 和 4.2 上遇到了 NoClassDefFoundError。我整天都在尝试修复它,但无济于事。我试过更改 targetSdkVersion、Parse 版本、使用 jar 而不是 Gradle 导入 Parse 库,以及清理和重建项目。一切都适用于 Android 5.0 及更高版本。
我使用的是 Parse 版本 1.12.0
CompileSdkVersion 23
构建工具版本 23.0.2
minSdkVersion 17
targetSdkVersion 23
这是我的堆栈跟踪。它在第一次尝试注册 ParseObject.
的子 class 时崩溃 01-13 12:18:26.500 1347-1347/? E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.parse.ParseObject
at com.parse.ParseObject.<clinit>(ParseObject.java:316)
at com.company.myapp.utils.Application.onCreate(PensterApplication.java:36)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4444)
at android.app.ActivityThread.access00(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
这是崩溃的应用程序 class。 我已将 class 名称在线更改为 post
public class myApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
FacebookSdk.sdkInitialize(this);
// Enable Local Datastore.
Parse.enableLocalDatastore(this);
// Parse classes that need registering
ParseObject.registerSubclass(aaa.class); //error happens here
ParseObject.registerSubclass(bbb.class);
ParseObject.registerSubclass(ccc.class);
ParseObject.registerSubclass(ddd.class);
ParseObject.registerSubclass(eee.class);
ParseObject.registerSubclass(fff.class);
ParseObject.registerSubclass(ggg.class);
ParseObject.registerSubclass(hhh.class);
ParseObject.registerSubclass(iii.class);
ParseObject.registerSubclass(jjj.class);
Parse.initialize(this, PARSE_APPLICATION_ID, PARSE_CLIENT_KEY);
//set a default acl so that default is not public read.write
if (ParseUser.getCurrentUser() != null) {
ParseACL defaultACL = new ParseACL(ParseUser.getCurrentUser());
defaultACL.setPublicReadAccess(false);
defaultACL.setPublicWriteAccess(false);
ParseACL.setDefaultACL(defaultACL, true);
}
// Save this installation
ParseInstallation.getCurrentInstallation().saveInBackground();
ParseFacebookUtils.initialize(this);
ParseTwitterUtils.initialize(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET);
}
}
如果知道出了什么问题,我们将不胜感激。
这可能是由于:
aaa
(可能是ParseObject
的子类)是使用与部署的库版本不同的ParseObject
版本构建的,或者myApplication
正在使用与部署的库版本不同的ParseObject
版本构建。
更有可能是后者。
我从友好的解析人员那里得到了他们 github 存储库的一些帮助。
我的问题: https://github.com/ParsePlatform/Parse-SDK-Android/issues/342
我的问题中引用的问题: https://github.com/ParsePlatform/Parse-SDK-Android/issues/213
引用问题中引用的堆栈溢出问题。 (这就是帮助我解决问题的原因。) Crash: java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$layout
原来是 multidex 的问题。我需要扩展 MultiDexApplication 而不是 Application。我还在混淆器规则中添加了一些内容。