web-dev-qa-db-ja.com

Android ClassNotFoundException:パスでクラスが見つかりませんでした

このエラーの解決策が見つかりません。永続的な解決策を教えてください。私はそれを解決する方法がわかりません。

01-04 11:06:42.302: E/AndroidRuntime(1906): Java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{e.gochat/e.gochat.gochat.MainActivity}: Java.lang.ClassNotFoundException: Didn't find class "e.gochat.gochat.MainActivity" on path: DexPathList[[Zip file "/data/app/e.gochat-1.apk"],nativeLibraryDirectories=[/data/app-lib/e.gochat-1, /vendor/lib, /system/lib]]
01-04 11:06:42.302: E/AndroidRuntime(1906):     at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2102)
01-04 11:06:42.302: E/AndroidRuntime(1906):     at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2226)
01-04 11:06:42.302: E/AndroidRuntime(1906):     at Android.app.ActivityThread.access$700(ActivityThread.Java:135)
01-04 11:06:42.302: E/AndroidRuntime(1906):     at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1397)
01-04 11:06:42.302: E/AndroidRuntime(1906):     at Android.os.Handler.dispatchMessage(Handler.Java:102)
01-04 11:06:42.302: E/AndroidRuntime(1906):     at Android.os.Looper.loop(Looper.Java:137)
01-04 11:06:42.302: E/AndroidRuntime(1906):     at Android.app.ActivityThread.main(ActivityThread.Java:4998)
01-04 11:06:42.302: E/AndroidRuntime(1906):     at Java.lang.reflect.Method.invokeNative(Native Method)
01-04 11:06:42.302: E/AndroidRuntime(1906):     at Java.lang.reflect.Method.invoke(Method.Java:515)
01-04 11:06:42.302: E/AndroidRuntime(1906):     at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:777)
01-04 11:06:42.302: E/AndroidRuntime(1906):     at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:593)
01-04 11:06:42.302: E/AndroidRuntime(1906):     at dalvik.system.NativeStart.main(Native Method)
01-04 11:06:42.302: E/AndroidRuntime(1906): Caused by: Java.lang.ClassNotFoundException: Didn't find class "e.gochat.gochat.MainActivity" on path: DexPathList[[Zip file "/data/app/e.gochat-1.apk"],nativeLibraryDirectories=[/data/app-lib/e.gochat-1, /vendor/lib, /system/lib]]
01-04 11:06:42.302: E/AndroidRuntime(1906):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.Java:56)
01-04 11:06:42.302: E/AndroidRuntime(1906):     at Java.lang.ClassLoader.loadClass(ClassLoader.Java:497)
01-04 11:06:42.302: E/AndroidRuntime(1906):     at Java.lang.ClassLoader.loadClass(ClassLoader.Java:457)
01-04 11:06:42.302: E/AndroidRuntime(1906):     at Android.app.Instrumentation.newActivity(Instrumentation.Java:1061)
01-04 11:06:42.302: E/AndroidRuntime(1906):     at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2093)
01-04 11:06:42.302: E/AndroidRuntime(1906):     ... 11 more
01-04 11:07:06.772: I/Process(1906): Sending signal. PID: 1906 SIG: 9

これは私のアプリですマニフェストXML

<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="e.gochat"
Android:versionCode="1"
Android:versionName="1.0" >

<uses-sdk
    Android:minSdkVersion="9"
    Android:targetSdkVersion="18" />
<permission
    Android:name="e.gochat.permission.C2D_MESSAGE"
    Android:protectionLevel="signature" />

<uses-permission Android:name="e.gochat.permission.C2D_MESSAGE" />
<uses-permission Android:name="Android.permission.INTERNET" />
<uses-permission Android:name="Android.permission.GET_ACCOUNTS" />
<uses-permission Android:name="Android.permission.WAKE_LOCK" />
<uses-permission Android:name="com.google.Android.c2dm.permission.RECEIVE" />
<uses-permission Android:name="Android.permission.READ_CONTACTS" />

<application
    Android:name="e.gochat.Common"
    Android:allowBackup="true"
    Android:icon="@drawable/ic_launcher"
    Android:label="@string/app_name"
    Android:theme="@style/AppTheme" >


    <activity
        Android:name="e.gochat.MainActivity">
        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />

            <category Android:name="Android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
     <activity Android:name="e.gochat.ChatActivity" 
        />
    <activity
        Android:name="e.gochat.SettingsActivity"
        Android:label="@string/title_activity_settings" />
    <receiver
        Android:name="e.gochat.client.GcmBroadcastReceiver"
        Android:permission="com.google.Android.c2dm.permission.SEND" >
        <intent-filter>
            <action Android:name="com.google.Android.c2dm.intent.RECEIVE" />

            <category Android:name="e.gochat" />
        </intent-filter>
    </receiver>
    <provider
        Android:name="e.gochat.DataProvider"
        Android:authorities="e.gochat.provider" 
        Android:exported="false">
    </provider>


</application>

ここで何が悪いのか分かりません。 .jarファイルをJavaビルドパスに追加しましたが、このclassnotfound例外が発生しています。Android.app.Applicationをインポートすると、アプリがロードされます

40
user3129072

パッケージ名はわかりませんが、e.gochatの場合はこれを実行してください。

package="e.gochat"をmanifest.xmlに追加します

<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
    package="e.gochat"
    .....
    .....
         >

Android:nameの各アクティビティ宣言で、アクティビティ名の前にドットを置きます。

<activity
    Android:name=".MainActivity">
............
</activity>

<activity 
    Android:name=".ChatActivity">

[〜#〜] edit [〜#〜]

編集後、e.gochatがパッケージ名であることがわかります。
これで、回答の後半で述べたように、各アクティビティ/プロバイダー/レシーバー名からe.gochatを削除するだけです。
Androidが追加します。

31
ramaral

Android studio。のインスタントランGotoファイルを無効にするには->設定->ビルド、実行、展開->インスタントラン->のチェックを外して、この問題を解決しました。インスタントラン

36
Kishor N R

Android Studioを使用して

Android Stuido 0.8.2にアップグレードした後、この問題が発生しました。

  • クリーンプロジェクト
  • クリーンプロジェクト(gradle clean)
  • キャッシュを無効にして再起動する
  • AndroidManifest.xml(.MyActivity)のアクティビティ名の資格を取り消す

プロジェクト全体を再インポートするまで、何も機能しませんでした。

File -> Close Project -> Import Project... -> Choose the same project -> OK

これは私のためにそれを修正しました

11
styler1972

デバイスからアプリをアンインストールしてプロジェクトを再度実行すると、修正されました。

10
live-love

私にとって、これは<Android 5.0を実行しているデバイスで発生したものです。これは multidexサポートが有効になっていないため (これは、ライブラリを含む合計65kを超えるメソッドです)。 Multidexは自動で、Android 5.0+(具体的には [〜#〜] art [〜#〜] )を使用するデバイスでネイティブです。

9
Tom Redman

これが私に影響を与えた理由は、レイアウトファイルのパス名が間違っていたためです。

<Android.support.v4.app.view.ViewPager xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:id="@+id/pager"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"> 

</Android.support.v4.app.view.ViewPager>

ViewPagerの正しい絶対パスは

Android.support.v4.view.ViewPager

パスを修正した後、動作しました。アクティビティ名の前に「。」を付ける必要はありませんでした。

8
Himadri Pant

この問題には、さまざまなシナリオに基づいた複数の回答があります。 Android Studioプロジェクトでライブラリ(.aar)を使用すると、同じエラーが発生しました。

私の場合の根本的な原因は、.aarファイルで使用されていたアプリのbuild.gradleファイルにサードパーティのlib依存関係を追加するのを逃したことです。

例:-ライブラリ(.aar)は 'com.squareup.okhttp3:okhttp:3.4.1'を使用していました。だから私は追加する必要がありました

'com.squareup.okhttp3:okhttp:3.4.1'をコンパイルします

アプリのbuild.gradleで。それが誰かを助けることを願っています。

5
Amit

この問題は、build.gradleファイルからMultiDexSupportを削除することで解決しました。

defaultConfig {
    multiDexEnabled true    // This line was causing above problem
}

MultiDexSupportを削除することで問題が解決しました

5
Kushal

Android STUDIOキッシャーの答えに加えて:

Gradle defaultconfigでmultiDexEnabled = trueを有効にすると、小さなプロジェクトでエラーが発生しました。生成された.apkファイルを使用すると、アプリの起動時に既知のエラーメッセージでクラッシュします。

私にとっては、gradle経由で.apkファイルを構築したときに解決しました(Android studio)-> "yourapp"-> Tasks-> install-> installDebugの右側

これがこの奇妙なエラーで誰かを助けることを願っています

1
Zuop

Android私がまだ実行していたバージョンでは利用できなかったリスナーを実装したため、同じエラーが発生しました。

MainActivityの例:

// RecyclerView.OnScrollChangeListener is only available on API >= 23
public class MainActivity implements RecyclerView.OnScrollChangeListener
{

}

API <23のデバイスでこのアクティビティを実行すると、このエラーも発生します...

1
prom85