web-dev-qa-db-ja.com

java.lang.ClassNotFoundException:パスにクラスが見つかりませんでした:DexPathList、SDKの更新後

こんにちはみんな私のアプリケーションは昨日まですべて正常に動作していました、私は昨日私のSDKを更新しました、そしてそれは最初にエラーを出し始めましたそれはエラーを出しました

値v24でリソースが見つかりません..。

このようなものを検索して、build.gradleの次の行を変更して解決しました

compileSdkVersion 25
buildToolsVersion '25.0.2'

エラーがなくなり、完全に正常に実行されていますより高いAndroidバージョン7.1.1ですが、実行するとin下位バージョン of Android次のようになりますエラー

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.wowio.ebookreader, PID: 15469
                  Java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.wowio.ebookreader/com.eminosoft.ebookread.activity.SplashScreenActivity}: Java.lang.ClassNotFoundException: Didn't find class "com.eminosoft.ebookread.activity.SplashScreenActivity" on path: DexPathList[[Zip file "/data/app/com.wowio.ebookreader-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.wowio.ebookreader-1, /vendor/lib, /system/lib]]
                      at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2195)
                      at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2378)
                      at Android.app.ActivityThread.access$800(ActivityThread.Java:155)
                      at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1244)
                      at Android.os.Handler.dispatchMessage(Handler.Java:102)
                      at Android.os.Looper.loop(Looper.Java:136)
                      at Android.app.ActivityThread.main(ActivityThread.Java:5433)
                      at Java.lang.reflect.Method.invokeNative(Native Method)
                      at Java.lang.reflect.Method.invoke(Method.Java:515)
                      at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:1268)
                      at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1084)
                      at dalvik.system.NativeStart.main(Native Method)
                   Caused by: Java.lang.ClassNotFoundException: Didn't find class "com.eminosoft.ebookread.activity.SplashScreenActivity" on path: DexPathList[[Zip file "/data/app/com.wowio.ebookreader-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.wowio.ebookreader-1, /vendor/lib, /system/lib]]
                      at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.Java:56)
                      at Java.lang.ClassLoader.loadClass(ClassLoader.Java:497)
                      at Java.lang.ClassLoader.loadClass(ClassLoader.Java:457)
                      at Android.app.Instrumentation.newActivity(Instrumentation.Java:1068)
                      at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2186)
                      at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2378) 
                      at Android.app.ActivityThread.access$800(ActivityThread.Java:155) 
                      at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1244) 
                      at Android.os.Handler.dispatchMessage(Handler.Java:102) 
                      at Android.os.Looper.loop(Looper.Java:136) 
                      at Android.app.ActivityThread.main(ActivityThread.Java:5433) 
                      at Java.lang.reflect.Method.invokeNative(Native Method) 
                      at Java.lang.reflect.Method.invoke(Method.Java:515) 
                      at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:1268) 
                      at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1084) 
                      at dalvik.system.NativeStart.main(Native Method) 

私はすでに試した以下のことをしている

1.クリーンプロジェクト

2.キャッシュの無効化/再起動

3.デバイス上のアプリの削除

すでにこれらの質問を見ました 質問1質問2 何も機能しませんでした。この問題を修正するにはどうすればよいですか?

あなたが何かを必要とするならば、私は問題でそれを更新します

私のbuild.gradleファイル

 apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 25
    buildToolsVersion '25.0.2'

    defaultConfig {
        applicationId "com.wowio.ebookreader"
        minSdkVersion 14
        targetSdkVersion 23
        multiDexEnabled true

    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.txt'
        }
    }
    dexOptions {
        javaMaxHeapSize "4g"
    }
}

dependencies {

    compile 'com.Android.support:appcompat-v7:+'
    compile 'com.google.Android.gms:play-services:+'
    compile 'com.Android.support:multidex:1.0.1'
     // the are many more dependencies i removed to decrease size

    }
7
Manohar Reddy

以下のようにクラスEnableMultiDexを記述します

public class EnableMultiDex extends MultiDexApplication {
    private static EnableMultiDex enableMultiDex;
    public static Context context;

    public EnableMultiDex(){
        enableMultiDex=this;
    }

    public static EnableMultiDex getEnableMultiDexApp() {
        return enableMultiDex;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        context = getApplicationContext();

    }
}

AndroidManifest.xmlこのクラスをApplicationタグ内に記述します

 <application
    Android:name="YourPakageName.EnableMultiDex"
    Android:hardwareAccelerated="true"
    Android:icon="@drawable/launch_logo"
    Android:label="@string/app_name"
    Android:largeHeap="true"
    tools:node="replace">
4
Manohar Reddy

はい、上記の答えかもしれませんが正解です。しかし、私は反対の方法で解決しました。「Android studio」の設定でインスタント実行オプションを削除します」

->ファイルメニュー->設定の選択->ビルド、実行、デプロイメントの選択->インスタント実行の選択->「インスタント実行の有効化」のチェックを外します。

それは私のために働いた。しかし、グーグルマップ統合アプリのようないくつかのアプリケーションはインスタント実行を必要としました。

4
Kona Suresh

私の場合、私のプロジェクトは次の後に再び機能し始めました。

  • エミュレーター(または実際のデバイス)からプロジェクトをアンインストールします
  • クリーンプロジェクト
  • プロジェクトを作成する
2
Jorge Casariego

Output\apkフォルダー内に作成されたデバッグapkをインストールしたため、同じエラーが発生しました。これは、おそらくインスタント実行の結果であるため、小さくなり、クラスが欠落しています。したがって、インスタントランをオフにする代わりに、APKをビルドして(メニューの[ビルド]-> [apkをビルド])、これを使用します。

0
Udi Reshef

私のために働いたインスタント実行を無効にするこの問題は、インストール実行でビルドするときに一部のクラスが欠落しているために発生すると思います(apkサイズを減らします)

0
Tinh Doan