web-dev-qa-db-ja.com

java.lang.RuntimeException:アクティビティをインスタンス化できませんComponentInfo / ClassNotFoundException

私はAndroidアプリケーションを開発しています。追加の新しいアクティビティをしたいのですが、logcatでエラーが発生しました

私のLogCat:

04-19 12:59:17.654: D/AndroidRuntime(18135): Shutting down VM
04-19 12:59:17.654: W/dalvikvm(18135): threadid=1: thread exiting with uncaught exception (group=0x4001d878)
04-19 12:59:17.684: E/AndroidRuntime(18135): FATAL EXCEPTION: main
04-19 12:59:17.684: E/AndroidRuntime(18135): Java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.bvblogic.Android.batterypower/com.bvblogic.Android.batterypower.activities.UnlockActivity}: Java.lang.ClassNotFoundException: com.bvblogic.Android.batterypower.activities.UnlockActivity in loader dalvik.system.PathClassLoader[/data/app/com.bvblogic.Android.batterypower-1.apk]
04-19 12:59:17.684: E/AndroidRuntime(18135):    at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2587)
04-19 12:59:17.684: E/AndroidRuntime(18135):    at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2681)
04-19 12:59:17.684: E/AndroidRuntime(18135):    at Android.app.ActivityThread.access$2300(ActivityThread.Java:125)
04-19 12:59:17.684: E/AndroidRuntime(18135):    at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:2033)
04-19 12:59:17.684: E/AndroidRuntime(18135):    at Android.os.Handler.dispatchMessage(Handler.Java:99)
04-19 12:59:17.684: E/AndroidRuntime(18135):    at Android.os.Looper.loop(Looper.Java:123)
04-19 12:59:17.684: E/AndroidRuntime(18135):    at Android.app.ActivityThread.main(ActivityThread.Java:4640)
04-19 12:59:17.684: E/AndroidRuntime(18135):    at Java.lang.reflect.Method.invokeNative(Native Method)
04-19 12:59:17.684: E/AndroidRuntime(18135):    at Java.lang.reflect.Method.invoke(Method.Java:521)
04-19 12:59:17.684: E/AndroidRuntime(18135):    at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:868)
04-19 12:59:17.684: E/AndroidRuntime(18135):    at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:626)
04-19 12:59:17.684: E/AndroidRuntime(18135):    at dalvik.system.NativeStart.main(Native Method)
04-19 12:59:17.684: E/AndroidRuntime(18135): Caused by: Java.lang.ClassNotFoundException: com.bvblogic.Android.batterypower.activities.UnlockActivity in loader dalvik.system.PathClassLoader[/data/app/com.bvblogic.Android.batterypower-1.apk]
04-19 12:59:17.684: E/AndroidRuntime(18135):    at dalvik.system.PathClassLoader.findClass(PathClassLoader.Java:243)
04-19 12:59:17.684: E/AndroidRuntime(18135):    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:573)
04-19 12:59:17.684: E/AndroidRuntime(18135):    at Java.lang.ClassLoader.loadClass(ClassLoader.Java:532)
04-19 12:59:17.684: E/AndroidRuntime(18135):    at Android.app.Instrumentation.newActivity(Instrumentation.Java:1021)
04-19 12:59:17.684: E/AndroidRuntime(18135):    at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2579)
04-19 12:59:17.684: E/AndroidRuntime(18135):    ... 11 more

私のmanifest.xml

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

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

    <uses-permission Android:name="Android.permission.INTERNET" />
    <uses-permission Android:name="Android.permission.BATTERY_STATS" />
    <uses-permission Android:name="Android.permission.ACCESS_WIFI_STATE" />
    <uses-permission Android:name="Android.permission.UPDATE_DEVICE_STATS" />
    <uses-permission Android:name="Android.permission.CHANGE_WIFI_STATE" />
    <uses-permission Android:name="Android.permission.WAKE_LOCK" />
    <uses-permission Android:name="Android.permission.BLUETOOTH" />
    <uses-permission Android:name="Android.permission.BLUETOOTH_ADMIN" />
    <uses-permission Android:name="Android.permission.WRITE_SETTINGS" />
    <uses-permission Android:name="Android.permission.HARDWARE_TEST" />
    <uses-permission Android:name="Android.permission.RESTART_PACKAGES" />
    <uses-permission Android:name="Android.permission.KILL_BACKGROUND_PROCESSES" />
    <uses-permission Android:name="Android.permission.GET_PACKAGE_SIZE" />
    <uses-permission Android:name="Android.permission.WAKE_LOCK" />
    <uses-permission Android:name="Android.permission.READ_PHONE_STATE" />
    <uses-permission Android:name="Android.permission.SYSTEM_ALERT_WINDOW" />

    <application
        Android:icon="@drawable/ic_launcher"
        Android:label="@string/app_name"
        Android:theme="@style/AppTheme" >
        <activity Android:name=".activities.UnlockActivity">
            <intent-filter>
                <action Android:name="Android.intent.action.MAIN" />

                <category Android:name="Android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity Android:name="com.bvblogic.Android.batterypower.activities.BatteryPowerTabActivity" >
        </activity>
        <activity Android:name="com.bvblogic.Android.batterypower.activities.MonitoringActivity" >
        </activity>
        <activity Android:name="com.bvblogic.Android.batterypower.activities.SettingsActivity" >
        </activity>
        <activity Android:name="com.bvblogic.Android.batterypower.activities.ProcessManagerActivity" >
        </activity>
        <activity
            Android:name="com.bvblogic.Android.batterypower.activities.DummyBrightnessActivity"
            Android:excludeFromRecents="true"
            Android:taskAffinity="com.bvblogic.Android.batterypower.Dummy"
            Android:theme="@Android:style/Theme.Translucent.NoTitleBar" >
        </activity>

        <service Android:name="com.bvblogic.Android.batterypower.util.TurboBoost" >
        </service>
        <service Android:name="com.bvblogic.Android.batterypower.services.BatteryPowerService" />

        <receiver
            Android:name="com.bvblogic.Android.batterypower.alarm.RegistrationAlarm"
            Android:process=":registration" >
        </receiver>
        <receiver
            Android:name="com.bvblogic.Android.batterypower.alarm.OnlinePingAlarm"
            Android:process=":ping" >
        </receiver>
        <receiver
            Android:name="com.bvblogic.Android.batterypower.alarm.AdNotificationAlarm"
            Android:process=":remote" >
        </receiver>
        <receiver
            Android:name="com.bvblogic.Android.batterypower.widget.MWidgetProvider"
            Android:icon="@drawable/btn_remove"
            Android:label="@string/app_name" >
            <intent-filter>
                <action Android:name="Android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>

            <meta-data
                Android:name="Android.appwidget.provider"
                Android:resource="@xml/widget_provider" />
        </receiver>
    </application>

</manifest>

私の活動:

package com.bvblogic.Android.batterypower.activities;

import com.bvblogic.Android.batterypower.R;

import Android.app.Activity;
import Android.os.Bundle;
import Android.util.Log;

public class UnlockActivity extends Activity {  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.settings_auto_saving_layout);
    }
}

次に、BatteryPowerTabActivityアプリケーションにインテントフィルターを割り当てました。私を助けてください。ありがとう

13
a.black13

アップグレード時に、新しい「Android Private Libraries」の「注文とエクスポート」が常にチェックされるわけではありません。そして、Android-support-v4.jarはこの「Android Private Libraries」セクションにあります。

これを修正するには、「注文とエクスポート」に移動し、「Android Private Libraries」を確認してください。次に、更新/クリーンアップ/再構築します。

ライブラリプロジェクトに対してこの「修正」を行った後、依存するプロジェクトを閉じて再度開く必要がある場合があります。これは、この「修正」がすぐに表示されない可能性があるためです。

enter image description here

19
codercat

マニフェストファイルのアクティビティ宣言を次のように変更します

 <activity Android:name=".UnlockActivity">

さもなければ

<activity Android:name="Yourcompletepackagename.UnlockActivity">

してみてください

7
vinoth

これは、アクティビティクラスがデフォルトパッケージ内にある場合に発生する可能性があります。アクティビティクラスを新しいパッケージに移動して修正しました。 manifest.xmlを変更する

アクティビティAndroid:name = "。MainActivity"

アクティビティAndroid:name = "new_package.MainActivity"

5
Satthy

おい、これは私のアプリがすでに市場で公開されているときにも起こりました。それは完全な災害でした。既に公開してから5時間後に気づきました。

ADTで実行しても問題ありませんでした。生成されたAPKに問題がありました。したがって、アプリを公開する場合は、テスト用の電話で純粋なAPKのインストールをテストしてください。

あなたと同じように、問題は私のADTの更新にあったと思います。私の場合はv22です。

解決策は、プロジェクトをクリーンアップしてビルドすることでした:

Android Java.lang.RuntimeException:アクティビティComponentInfoをインスタンス化できません

5

同じ問題がありましたが、マニフェストファイルで正しい名前を使用してアクティビティを宣言しました。

私の問題は、「libs」フォルダにサードパーティのライブラリをインポートする必要がなく、プロジェクトでそれらを参照する必要があったことです(右クリック、プロパティ、Javaビルドパス、ライブラリ、jarを追加...)。

マニフェストファイルでアクティビティをどのように宣言するかについては、.ActivityNameを正しく使用すると、常にそのアクティビティがメインパッケージに含まれます。

@codercatのアドバイスに同意しますが、同じ機能で異なるプロジェクト構造でv7およびv1を使用している場合にもこのエラーが発生します。したがって、私はv13 jarファイルをlibsにコピーするフォルダー(外部jarとしてインポートしないでください)にアドバイスし、次にcheckAndroidライブラリおよびAndroid依存関係。プロジェクトを更新して、プロジェクトをクリーンアップします。あなたが直面しているエラーはなくなると確信しています。

1
Kaveesh Kanwal

私も同じ問題があり、自動的にビルドをオフにして、自分のAndroidプロジェクトを手動でビルドし、このエラーを解決したプロジェクトをクリーンアップしました

1
David Fetcher

から行を変更

<activity Android:name=".activities.UnlockActivity">  

<activity Android:name=".com.bvblogic.Android.batterypower.activities.UnlockActivity
 ">

プロジェクトの掃除は私にとってはうまくいきました。問題の原因は何ですか? LOLプロジェクトをAndroid 5から4.4にアップグレードしようとし、それから気が変わってそれをKitKatに復元しようとしたところ、失敗しました!このエラーが発生しましたアップ。

0
Oladipo Olasemo

AndroidManifest.xmlからパッケージ名(com.blogspot.geekonjava)を削除することでこの問題を解決します:

<activity
            Android:name="com.blogspot.geekonjava.MainActivity"
            Android:theme="@style/Theme.AppCompat.Light"
            Android:label="@string/app_name" >

<activity
            Android:name=".MainActivity"
            Android:theme="@style/Theme.AppCompat.Light"
            Android:label="@string/app_name" >

それは私にとってはうまくいきます。

0
Tell Me How

String a = edt.getText().toString();またはint 5/3を宣言している可能性があるため、このようなエラーが発生する

そう、
onCreateメソッドでそれらを宣言すると、エラーが解決します

0