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>
LogCat 将 Manifest
名称更改为 ".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
文件夹,它是空的似乎很好。
我重构了我的包名并将我的 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>
LogCat 将 Manifest
名称更改为 ".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
文件夹,它是空的似乎很好。