8

安定版チャンネルから Android Studio 2.1 にアップデートしました。それを行うとすぐに、マニフェストで長い間宣言されているログインクラスに ClassNotFoundException を取得しています。更新前は、アプリは正常にコンパイルされていました。

com.myapp E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.myapp, PID: 29605
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.myapp/com.myapp.Login}: java.lang.ClassNotFoundException: Didn't find class "com.myapp.Login" on path: DexPathList[[zip file "/data/app/com.myapp-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3023)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3294)
    at android.app.ActivityThread.access$1000(ActivityThread.java:210)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1704)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:145)
    at android.app.ActivityThread.main(ActivityThread.java:6938)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "com.myapp.Login" on path: DexPathList[[zip file "/data/app/com.myapp-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1094)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3013)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3294) 
    at android.app.ActivityThread.access$1000(ActivityThread.java:210) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1704) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:145) 
    at android.app.ActivityThread.main(ActivityThread.java:6938) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199) 
    Suppressed: java.lang.ClassNotFoundException: com.myapp.Login
    at java.lang.Class.classForName(Native Method)
    at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
    at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
    ... 13 more
    Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

これは私のgradle.buildです

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
android {
    compileSdkVersion 'Google Inc.:Google APIs:23'
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.myapp"
        minSdkVersion 14
        targetSdkVersion 22
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
//    compile files('libs/smack-core-4.0.7.jar')
    compile 'com.android.support:appcompat-v7:23.0.1'
    compile 'com.google.android.gms:play-services:7.8.0'
    compile 'com.google.maps.android:android-maps-utils:0.4+'
}

これまでのところ、私は試しました 1)プロジェクトをクリーンアップして再構築する 2)ビルドフォルダーを削除し、プロジェクトを再構築する/ Android Studioを再起動する 3)カナリアチャンネルと開発チャンネルに切り替えて更新する 4)設定でオフラインモードをチェックしてチェックを外す 明らかにこれはバグですが、これに対する解決策はありますか?最近の更新を元に戻すにはどうすればよいですか? どんな助けでも大歓迎です。

4

8 に答える 8

10

これを試して:

アプリをクリアcache

アプリをクリアdata

Uninstallアプリ

Run/Debugまた

それがうまくいくことを願っています!

于 2016-04-27T05:57:10.833 に答える
6

Android Studio のバージョン 2.1 にアップデートした後、同様のエラーが発生しています。かなり前に追加されたクラスが、アプリケーションの起動時に見つからなくなりました。Android 5.1 および 5.1.1 でのみ発生しています。本当に奇妙なクラッシュ!

これに対する解決策は、「 Instant Run 」を有効にすることで、Lollipop の問題を解決することでした。

于 2016-04-28T10:18:03.927 に答える
2

私はこのエラーを経験し、多くの SO スレッドとさまざまなリソースを調べ、Android dev irc にもチェックインしました。答えは傾向に従っているようです:

Gradle/Android Studio 一般:

クリーン ビルド、Android Studio キャッシュのリセット、Android Studio のアンインストールと再インストール、Android Studio を終了して 2 時間後に戻ってきて、コンピューターを再起動します。

クラスの参照

マニフェストに正しく記載されていますか? グラドル構成はどうですか?

IDE 経由でのクラスのロード (ただし、ほとんどが Eclipse 関連のようです)

ADT 22 にアップグレードした後、ライブラリが APK に追加されない

Android アクティビティ ClassNotFoundException - すべてを試しました

https://www.youtube.com/watch?v=3vqcGhEPHdo

私の解決策:名前の競合?

Manifestクラス名をMyCoolManifestまたはそのようなものに変更することで、問題が発生しなくなったことを純粋に絶望的に発見しました。クラス名はLoginであるため、クラスの名前を変更すると問題が解決する可能性があります。

于 2016-04-27T06:12:35.877 に答える