102
10-22 15:29:40.897: E/AndroidRuntime(2561): FATAL EXCEPTION: main
10-22 15:29:40.897: E/AndroidRuntime(2561): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.gvg.simid/com.gvg.simid.Login}: java.lang.ClassNotFoundException: Didn't find class "com.gvg.simid.Login" on path: DexPathList[[zip file "/data/app/com.gvg.simid-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.gvg.simid-1, /vendor/lib, /system/lib]]
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2137)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.os.Looper.loop(Looper.java:137)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.main(ActivityThread.java:5103)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at java.lang.reflect.Method.invokeNative(Native Method)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at java.lang.reflect.Method.invoke(Method.java:525)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at dalvik.system.NativeStart.main(Native Method)
10-22 15:29:40.897: E/AndroidRuntime(2561): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.gvg.simid.Login" on path: DexPathList[[zip file "/data/app/com.gvg.simid-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.gvg.simid-1, /vendor/lib, /system/lib]]
10-22 15:29:40.897: E/AndroidRuntime(2561):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
10-22 15:29:40.897: E/AndroidRuntime(2561):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128)
10-22 15:29:40.897: E/AndroidRuntime(2561):     ... 11 more

マニフェストに正しくリストされているため、何が原因なのかよくわかりません。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.gvg.simid"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_LOGS" />
    <uses-permission android:name="android.permission.READ_OWNER_DATA" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_OWNER_DATA" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <uses-feature android:name="android.hardware.usb.host" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.gvg.simid.Login"
            android:label="@string/app_name" 
            android:screenOrientation="landscape">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

ビルド パスに「Android Private Libraries」も追加し、「Order and Export」の一番上に移動しましたが、それでも同じエラーが発生しました。

編集: プロジェクトを完全に再構築しましたが、エラーを再現できませんでした。何が原因だったのかわからない。

4

37 に答える 37

14

Android Studio でこの問題が発生している方のために、私はマージ後に同じ問題を抱えていましたが、何らかの理由で操作後も持続しcleaninvalidate cash/restart私を夢中にさせていました。

結局のところ、コマンドラインからgradle buildを1回実行することで修正できます。プロジェクト ディレクトリで次のコマンドを実行するだけです。

./gradlew assemble clean
./gradlew assemble

私が経験しなければならなかった時間の無駄と欲求不満を誰かが救うことができれば幸いです.

于 2017-05-31T11:24:41.910 に答える
12

私は同じ問題を抱えていました、これは私にとってはうまくいきました

1) 相対パスの代わりに mainfest でのアクティビティのフル パス。

2) 'build' フォルダーを削除し、プロジェクトをクリーンアップします。

于 2016-06-29T07:04:04.600 に答える
10

Library ProjectAndroid プロジェクトにモジュールとしてnew を追加Kotlinし、ライブラリで使用している場合は、追加することを忘れないでください

apply plugin: 'kotlin-android'

モジュールの Gradle ファイルの先頭に追加します。Android Studio は、新しいモジュールを作成したときにこの行を追加しないため、私のように時間を無駄にする可能性があります。

編集:しばらくして、この問題に再び苦労しましたが、今回はモジュールをプロジェクトへの依存関係として追加するのを忘れていました。:)

于 2018-12-17T15:24:12.530 に答える
9

Eclipse を使用している場合は、Project -> Clean を試してください。

于 2013-10-22T16:25:50.080 に答える
7

これは、APP のビルド パスを変更した場合に発生します。これは、ライブラリまたは .jar ファイルの追加、削除、または変更のいずれの場合にも発生する可能性があります。最善の解決策は、Eclipse を再起動することです。

于 2014-01-28T08:39:45.003 に答える
6

Android Studio 2.0 以降で新しい Instant Run 機能を使用しているときにこのエラーが発生した場合、これは何らかのバグです。
これを修正するには、デバイス/エミュレーターでアプリを手動で停止する必要があります。アプリが停止していない場合は、Android Studio から選択します。Build→</kbd>Rebuild Project.
Then click the Run button or SHIFT+F10

于 2016-04-17T13:27:57.610 に答える
3

ビューを拡張するクラスを定義したが、レイアウト ファイルでこのカスタム ビューを間違った名前で参照したときに、このエラーに直面しました。の代わりに、XML レイアウト ファイルに<com.example.customview/>含めました。<com.customview/>

于 2015-07-11T05:46:18.883 に答える
3

1) プロジェクト ルートの下に libs フォルダーを作成します
2) jar ファイルをコピーしてそこに貼り付けます
3) ビルド パスを構成します (jar を追加します)
4) クリーンアップして、

cheers を実行します :-)

于 2014-12-24T06:51:44.623 に答える
3

信じられないかもしれませんが...私は、ここで見つけたほとんどすべての答えをstackoverflowで試しました。マシンを再起動するまで、何も役に立ちませんでした。私の Android Studio は Ubuntu 16.04 LTS で動作します。

于 2017-01-05T02:22:46.963 に答える
0

私はまったく同じ問題を抱えていました。@weiweiaが示唆したように、コードをJavaディレクトリからsrcに移動するとうまくいきました。また、[プロジェクト] --> [プロパティ] --> [Java ビルド パス] --> [注文とエクスポート] から Android 依存関係を削除し、Android 画面にライブラリ プロジェクトのみを含めるようにしました。

于 2014-07-15T20:49:27.783 に答える
0

私はかなり長い間この問題を抱えていましたが、他のみんなと同じように、上記の答えは私のプロジェクトには当てはまりませんでした。

私のプロジェクトでは、プロジェクトを自分のプロジェクトにリンクしていましたが、他のプロジェクトのコードが実行されるたびに ClassDefNotFoundError をスローしていました。

これが私の解決策でした。プロジェクトのプロジェクト プロパティと Java ビルド パスに移動しました。「ソース」タブを押して、他のプロジェクトの src-folder から「ソースをリンク」し、新しいフォルダーに「core-src」という名前を付けました。

このソリューションが誰かに役立つことを願っています

于 2014-08-14T07:55:19.877 に答える
0

私たちの場合、Vagrant バージョンをコンパイルしたかったのですが、同じエラーが発生しました。Buildメニューでclean project修正しましたrebuild project

于 2015-05-19T08:18:28.660 に答える
0

同じ問題がありました。Xamarin.Android を使用しています。

私の場合の問題は、versionCode と versionName を変更したことです。

次のように設定しても問題ありませんでした。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="pac.ka.ge" android:versionCode="1" android:versionName="1.0" android:installLocation="auto">

これに変更したときに問題が発生しました(versionCode 2およびversionName 0.0.1):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package=" pac.ka.ge " android:versionCode="2" android:versionName="0.0.1" android:installLocation="auto">

次のように、versionCode 2 と versionName 1.0.0.1 に変更して問題を修正しました。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package=" pac.ka.ge " android:versionCode="2" android:versionName="1.0.0.1" android:installLocation="auto">

なぜこれが問題なのかはわかりませんが、Android はより高い versionCode でより低い versionName を好まないのでしょうか?

http://developer.android.com/guide/topics/manifest/manifest-element.html#vnameで以下を見つけました

android:versionCode 内部のバージョン番号。この番号は、あるバージョンが別のバージョンよりも新しいかどうかを判断するためにのみ使用され、数字が大きいほど新しいバージョンを示します。これは、ユーザーに表示されるバージョン番号ではありません。その番号は versionName 属性によって設定されます。値は、「100」などの整数として設定する必要があります。連続する各バージョンの番号が大きい限り、必要に応じて定義できます。たとえば、ビルド番号などです。または、下位 16 ビットと上位 16 ビットで別々に「x」と「y」をエンコードすることにより、「xy」形式のバージョン番号を整数に変換することもできます。または、新しいバージョンがリリースされるたびに番号を 1 ずつ増やすこともできます。

android:versionName ユーザーに表示されるバージョン番号。この属性は、生の文字列として、または文字列リソースへの参照として設定できます。文字列には、ユーザーに表示する以外の目的はありません。versionCode 属性は、内部で使用される重要なバージョン番号を保持します。

于 2014-10-30T11:05:11.790 に答える
0

I just restarted the device and ran the app. It worked without any issues. Hope this helps someone :)

于 2016-05-30T09:43:14.077 に答える