Android Studio 清单错误 - 说包不存在

Android Studio Manifest error - saying package does not exist

我重构了我的包名并将我的 CuteMainActivity 放在包 org.azurespot.cutemain.CuteMainActivity 中。另外重新安排了我所有其他 类。所以现在我的清单中的 .CuteMainActivity 部分出现红色错误,activity 应该在该部分启动。

我还将我的 Manifest 的顶级包名称更改为新的名称:org.azurespot,并将我的 build.gradle 文件中的 applicationID 也更改为新的包名称 org.azurespot .然后我重建、清理,甚至尝试 invalidate and restart 我的项目,但没有任何东西可以消除这个红色错误。我还尝试分配新的 package/activity 名称以在我的 运行 配置中启动,但出现此错误:

Launching application: org.azurespot/org.azurespot.cutemain.CuteMainActivity.
DEVICE SHELL COMMAND: am start -n "org.azurespot/org.azurespot.cutemain.CuteMainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=org.azurespot/.cutemain.CuteMainActivity }
Error type 3
Error: Activity class {org.azurespot/org.azurespot.cutemain.CuteMainActivity} does not exist

一件奇怪的事情是,我的包名称旁边有单词 (androidTest)。那会使事情不起作用吗?通常studio会创建一个常规的包名和一个package_name (androidTest),但是在重构中,我只看到这个(androidTest)一个

我已经研究这个问题一段时间了,但似乎没有任何效果。有什么建议么?谢谢。

Manifest.java

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.azurespot" >

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".CuteMainActivity" //This has a red error
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>

LogCatManifest 名称更改为 ".cutemain.CuteMainActivity"

1480-1480/org.azurespot E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: org.azurespot, PID: 1480
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.azurespot/org.azurespot.cutemain.CuteMainActivity}: java.lang.ClassNotFoundException: Didn't find class "org.azurespot.cutemain.CuteMainActivity" on path: DexPathList[[zip file "/data/app/org.azurespot-2.apk"],nativeLibraryDirectories=[/data/app-lib/org.azurespot-2, /system/lib]]
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
            at android.app.ActivityThread.access0(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            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:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "org.azurespot.cutemain.CuteMainActivity" on path: DexPathList[[zip file "/data/app/org.azurespot-2.apk"],nativeLibraryDirectories=[/data/app-lib/org.azurespot-2, /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:1061)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2101)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
            at android.app.ActivityThread.access0(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            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:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)

您应该将其更改为以下之一:

android:name="org.azurespot.cutemain.CuteMainActivity"

android:name=".cutemain.CuteMainActivity"

啊...包名带(androidTest)的确实是罪魁祸首。上面所有的答案都应该有固定的东西,但最后的问题是,当我重构时(我不知道它是怎么发生的),我所有的新包名称都被放入我的 androidTest 目录中 src 文件夹,我的 src 文件夹中的 main 没有任何内容。所以当我的应用程序去寻找主要 activity 时,找不到它。解决方法是将整个 java 文件夹放回 main 文件夹(因为某些原因它是空的),然后重新启动应用程序,然后一切又恢复正常了。没有必要删除 androidTest 文件夹,它是空的似乎很好。