[英]Android: Unable to instantiate application
我重命名了我的 package,現在我收到了這個奇怪的錯誤:
Unable to instantiate application
app.MyApplication: java.lang.ClassNotFoundException:
app.MyApplication in loaderdalvik.system.PathClassLoader
MyApplication
class 位於Application/app
中。 宣言說:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="Application">
<application
android:label="AGG"
android:name="app.MyApplication"...
我嘗試重新啟動,干凈構建。 Is 不適用於模擬器或真實設備。
地球上發生了什么?
假設您的項目基礎 package 確實是Application
,正如您在manifest
中所述。
If your MyApplication
class is inside this package (the package declaration of the class is package Application;
), then the application
element in your androidManifest.xml
should look like
<application android:name=".MyApplication" [...]
如果這個MyApplication
class 在Application.app
package ( package Application.app;
) 中,那么在清單中你應該寫:
<application android:name=".app.MyApplication" [...]
如果您沒有擴展android.app.Application
(您沒有MyApplication extends android.app.Application
類),只是想為您的應用程序設置一個名稱,請刪除此屬性,因為它對編譯器說應該實例化一個Application
擴展而不是默認的android.app.Application
。
最后,如果第一個假設是錯誤的,並且您出於任何原因更改了 androidManifest manifest
元素中的 package 聲明,請撤消它或將您的類更新為該 package。
對我來說,問題在於即時運行。 禁用它解決了這個問題。
如果我找到重新啟用並使其工作的解決方案,將更新。
這個答案對我有幫助,如果您使用的是 SDK 17+ https://stackoverflow.com/a/10176048/46459 ,則基本上將您的 lib 重命名為 libs
就我而言,它拋出:
Caused by: java.lang.IllegalAccessException: java.lang.Class<foo.bar.MyApp> is not accessible from java.lang.Class<android.app.AppComponentFactory>
原因是應用程序 class 必須使用修飾符聲明public
,例如這樣做:
public class MyApp extends Application {
}
代替:
class MyApp extends Application {
}
就我而言,我將 JAVA 編譯器合規級別從 1.7 更改為 1.6,問題就解決了。
確保清單中的所有引用都已更新,以反映您的新 package 名稱。
package="Application"
應該是package="MyApplication"
嗎?
您需要更正android:name
屬性。 在 Android 中更改應用程序名稱后,ClassNotFoundException中提到的相同問題
簡單地清理項目並重建。
刪除這些行對我有用:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
更新:
這個問題背后的原因是我的電腦上沒有安裝 JAVA 8
對我來說,問題是由於 class 的訪問級別,它必須是公開的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.