Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NoClassDefFoundError:com.parse.ParseObject$1_Java_Android_Parse Platform_Noclassdeffounderror - Fatal编程技术网

Java NoClassDefFoundError:com.parse.ParseObject$1

Java NoClassDefFoundError:com.parse.ParseObject$1,java,android,parse-platform,noclassdeffounderror,Java,Android,Parse Platform,Noclassdeffounderror,我在Android 4.4、4.3和4.2上遇到了NoClassDefFoundError。我一整天都想把它修好,但没有用。我尝试过更改targetSdkVersion、Parse version、使用jar而不是Gradle导入解析库,以及清理和重建项目。在安卓5.0及以上版本上,一切都可以正常工作 我正在使用解析版本1.12.0 编译DK23版 BuildToolsVersion23.0.2 第17版 targetSdkVersion 23 这是我的堆栈跟踪。它在第一次尝试注册ParseOb

我在Android 4.4、4.3和4.2上遇到了NoClassDefFoundError。我一整天都想把它修好,但没有用。我尝试过更改targetSdkVersion、Parse version、使用jar而不是Gradle导入解析库,以及清理和重建项目。在安卓5.0及以上版本上,一切都可以正常工作

我正在使用解析版本1.12.0

编译DK23版

BuildToolsVersion23.0.2

第17版

targetSdkVersion 23

这是我的堆栈跟踪。它在第一次尝试注册ParseObject的子类时崩溃

          01-13 12:18:26.500 1347-1347/? E/AndroidRuntime: FATAL EXCEPTION: main
         java.lang.NoClassDefFoundError: com.parse.ParseObject$1
             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.access$1300(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)

如果你知道出了什么问题,我将不胜感激

这可能是由于:

  • aaa
    (可能是
    ParseObject
    的子类)是使用与部署的库版本不同的
    ParseObject
    版本构建的,或者
  • myApplication
    正在使用与部署的库版本不同的
    ParseObject
    版本构建

  • 更可能是后者。

    我在github repo上从友好的解析人员那里得到了一些帮助

    我的问题:

    从我的问题中引用的问题:

    从引用的问题引用的堆栈溢出问题。(这就是帮助我解决问题的原因。)


    原来这是multidex的问题。我需要扩展多索引应用程序,而不是应用程序。我还为我的proguard规则添加了一些东西

    ParseObject$1
    听起来像是
    ParseObject
    本身的内部类。如果您使用的是ProGuard,您可能希望确保它不会太激进。ProGuard只影响发布版本,并且它也会发生在调试版本中。为了确保我完全禁用了ProGuard,它仍然崩溃。谢谢你的建议。如果是这样,为什么它会在某些设备上工作?
      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);
    
            }
        }