代码之家  ›  专栏  ›  技术社区  ›  mcfly soft

Java语言API级别19下的lang.ClassNotFoundException

  •  0
  • mcfly soft  · 技术社区  · 7 年前

    我有一个应用程序,除了在API 19下启动外,我还得到下面的stacktrace。

    我之前不得不在gradle的建筑中添加:

    defaultConfig {
            multiDexEnabled true
    

    从另一个类似的 question 我还添加了依赖项

    depenencies {
       ...
       compile 'com.android.support:multidex:1.0.1'
       ...
    }
    

    但该应用程序在API19下启动时仍会崩溃。

    有人能帮忙吗?

    02-21 16:07:05.043 3348-3348/? E/memtrack: Couldn't load memtrack module (No such file or directory) 02-21 16:07:05.043 3348-3348/? E/android.os.Debug: failed to load memtrack module: -2 02-21 16:07:19.723 3359-3359/? E/memtrack: Couldn't load memtrack module (No such file or directory) 02-21 16:07:19.723 3359-3359/? E/android.os.Debug: failed to load memtrack module: -2 02-21 16:07:19.923 2015-2015/com.google.android.gms E/dalvikvm: Dex cache directory isn't writable: /data/dalvik-cache 02-21 16:07:19.923 2015-2015/com.google.android.gms E/ChimeraModuleLdr: Initialization failed for module apk com.google.android.play.games
                                                                            java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.chimera.GmsModuleInitializer" on path: DexPathList[[zip file "/system/app/PlayGames.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
                                                                                at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                                                                                at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
                                                                                at csg.loadClass(:com.google.android.gms@11947030:3)
                                                                                at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
                                                                                at com.google.android.gms.chimera.container.GmsModuleApi.onApkLoaded(:com.google.android.gms@11947030:1)
                                                                                at csm.a(:com.google.android.gms@11947030:88)
                                                                                at csm.a(:com.google.android.gms@11947030:35)
                                                                                at csm.a(:com.google.android.gms@11947030:118)
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Levi Moreira    7 年前

    根据 docs ,是否让应用程序在应用程序类中扩展多索引应用程序或初始化多索引? 像这样:

    执行以下操作之一:

    使应用程序类扩展为多索引应用程序

    public class MyApplication extends MultiDexApplication { ... }
    

    更改清单如下:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.myapp">
        <application
                android:name="android.support.multidex.MultiDexApplication" >
            ...
        </application>
    </manifest>
    

    或者这个

    public class MyApplication extends SomeOtherApplication {
      @Override
      protected void attachBaseContext(Context base) {
         super.attachBaseContext(context);
         Multidex.install(this);
      }
    }