Guy*_*kes 20 java android intellij-idea
我重命名了我的包,现在我得到了这个奇怪的错误:
Unable to instantiate application
app.MyApplication: java.lang.ClassNotFoundException:
app.MyApplication in loaderdalvik.system.PathClassLoader
Run Code Online (Sandbox Code Playgroud)
该MyApplication
班是Application/app
.清单说:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="Application">
Run Code Online (Sandbox Code Playgroud)
<application
android:label="AGG"
android:name="app.MyApplication"...
Run Code Online (Sandbox Code Playgroud)
我试过重新启动,清理内置.是在模拟器上还是在真实设备上不起作用.
地球上到底是怎么回事?
rek*_*eru 26
让我们假设,你的项目基础包真的是Application
,正如你在中所说的那样manifest
.
如果你的MyApplication
类在这个包中(类的包声明是package Application;
),那么application
你的元素androidManifest.xml
应该是这样的
<application android:name=".MyApplication" [...]
Run Code Online (Sandbox Code Playgroud)
如果这个MyApplication
类在Application.app
package(package Application.app;
)中,那么在清单中你应该写:
<application android:name=".app.MyApplication" [...]
Run Code Online (Sandbox Code Playgroud)
如果你没有扩展android.app.Application
(你没有MyApplication extends android.app.Application
类),只是想为你的应用程序设置一个名称,删除它这个属性,因为它告诉编译器有一个Application
应该实例化的扩展而不是默认android.app.Application
.
最后,如果第一个假设是错误的,并且您已经因为任何原因更改了androidManifest manifest
元素中的包声明,请将其撤消或更新您的类以包含在该包中.
小智 6
就我而言,它抛出:
Caused by: java.lang.IllegalAccessException: java.lang.Class<foo.bar.MyApp> is not accessible from java.lang.Class<android.app.AppComponentFactory>
Run Code Online (Sandbox Code Playgroud)
原因是Application 类必须使用修饰符声明public
,例如这样做:
public class MyApp extends Application {
}
Run Code Online (Sandbox Code Playgroud)
代替:
class MyApp extends Application {
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
36377 次 |
最近记录: |