[英]Android - Unable to instantiate activity
我目前正在使用Android Studio開發自己的Android項目(我的自定義啟動器)! 事實是,自從上次更新(版本為0.4.0)以來,我無法運行我的應用程序。
相反,我得到以下錯誤:
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.natercio.myhome/com.natercio.myhome.Launcher}: java.lang.ClassNotFoundException: Didn't find class "com.natercio.myhome.Launcher" on path: DexPathList[[zip file "/data/app/com.natercio.myhome-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.natercio.myhome-2, /system/lib]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2137)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.natercio.myhome.Launcher" on path: DexPathList[[zip file "/data/app/com.natercio.myhome-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.natercio.myhome-2, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
我到處搜尋了我能記得的解決方案(或相關內容),並嘗試了很多東西,但都沒有成功。
我在這一行中注意到的一件事
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.natercio.myhome.Launcher" on path: DexPathList[[zip file "/data/app/com.natercio.myhome-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.natercio.myhome-2, /system/lib]]
是在應用程序名稱(在apk文件和lib路徑中)后面附加了“ -2”(有時是“ -1”),但是我之前從未真正注意到這一點,所以我無法分辨確定這是否與我的問題有關。
還請考慮到我使用了git,並且我已經嘗試將所有更改恢復到以前穩定的提交之一。
更新:
還有其他人在Android Studio中遇到此問題嗎? 對於這種錯誤,我是否還有其他解決方案,或者可能是最新的android插件(適用於android studio)中的某些錯誤。
UPDATE(build.gradle和清單文件):
build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.7.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
}
android {
compileSdkVersion 18
buildToolsVersion '18.1.1'
defaultConfig {
minSdkVersion 15
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:+'
compile 'com.android.support:support-v13:+'
compile 'com.j256.ormlite:ormlite-android:4.47'
}
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.natercio.myhome"
android:versionName="@string/app_version_name">
<uses-sdk android:targetSdkVersion="17"
android:minSdkVersion="15"/>
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Launcher">
<service android:name=".profiler.ProfilerService"
android:exported="false"/>
<activity android:name=".Launcher"
android:screenOrientation="portrait"
android:launchMode="singleTask"
android:description="@string/app_description">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.HOME"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
</application>
</manifest>
將Android Studio更新到0.4.0后,我遇到了同樣的問題。 看來過於簡單了,但我通過簡單地刪除整個/ build文件夾(在0.4.0更新之前創建的文件夾)並重建來解決了該問題。
試試這個java.lang.RuntimeException:無法實例化活動ComponentInfo / java.lang.ClassNotFoundException
或者,使用CMD訪問項目並清理項目
gradlew清潔
gradlew構建
我相信-2或-1來自具有多個副本? 至少這就是我的經驗。 但是,您到底要問什么?
該錯誤表明該項目中有一個庫的多個副本。 進入project structure
-> modules
並檢查target
或apk-libs
文件夾(如果android studio正在提取多個副本)。 我在android studio中遇到了同樣的錯誤,結果studio在target
文件夾中生成了一個名為unpack
的新文件夾,這導致了問題。
在對Android Studio進行一些更新后,該問題得以解決!
檢查您的項目設置->模塊->您的項目名稱->源
確保您的src和res列表在右框架(名為“添加內容根目錄”,res作為“資源文件夾”,src作為“源文件夾”)
或您的項目遇到一些錯誤,愚蠢的android studio仍然在您的設備上放置了錯誤的apk,而運行當然會出現錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.