2015-06-23 77 views
1

需要您的幫助!Android應用程序崩潰 - 無法實例化活動ComponentInfo

我是Android新手,由於某種原因,我的應用停止工作,並在啓動時崩潰。

我不確定它是否相關,但我已經將Maven添加到項目中。 這裏的錯誤日誌:

06-23 14:32:18.380: E/AndroidRuntime(1775): FATAL EXCEPTION: main 
06-23 14:32:18.380: E/AndroidRuntime(1775): Process: com.app.test, PID: 1775 
06-23 14:32:18.380: E/AndroidRuntime(1775): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.app.test/com.test.activities.SplashActivity}: java.lang.ClassNotFoundException: Didn't find class "com.test.activities.SplashActivity" on path: DexPathList[[zip file "/data/app/com.app.test-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] 
06-23 14:32:18.380: E/AndroidRuntime(1775):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2236) 
06-23 14:32:18.380: E/AndroidRuntime(1775):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) 
06-23 14:32:18.380: E/AndroidRuntime(1775):  at android.app.ActivityThread.access$800(ActivityThread.java:151) 
06-23 14:32:18.380: E/AndroidRuntime(1775):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
06-23 14:32:18.380: E/AndroidRuntime(1775):  at android.os.Handler.dispatchMessage(Handler.java:102) 
06-23 14:32:18.380: E/AndroidRuntime(1775):  at android.os.Looper.loop(Looper.java:135) 
06-23 14:32:18.380: E/AndroidRuntime(1775):  at android.app.ActivityThread.main(ActivityThread.java:5257) 
06-23 14:32:18.380: E/AndroidRuntime(1775):  at java.lang.reflect.Method.invoke(Native Method) 
06-23 14:32:18.380: E/AndroidRuntime(1775):  at java.lang.reflect.Method.invoke(Method.java:372) 
06-23 14:32:18.380: E/AndroidRuntime(1775):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
06-23 14:32:18.380: E/AndroidRuntime(1775):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
06-23 14:32:18.380: E/AndroidRuntime(1775): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.test.activities.SplashActivity" on path: DexPathList[[zip file "/data/app/com.app.test-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] 
06-23 14:32:18.380: E/AndroidRuntime(1775):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
06-23 14:32:18.380: E/AndroidRuntime(1775):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
06-23 14:32:18.380: E/AndroidRuntime(1775):  at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 
06-23 14:32:18.380: E/AndroidRuntime(1775):  at android.app.Instrumentation.newActivity(Instrumentation.java:1066) 
06-23 14:32:18.380: E/AndroidRuntime(1775):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2226) 
06-23 14:32:18.380: E/AndroidRuntime(1775):  ... 10 more 
06-23 14:32:18.380: E/AndroidRuntime(1775):  Suppressed: java.lang.ClassNotFoundException: com.test.activities.SplashActivity 
06-23 14:32:18.380: E/AndroidRuntime(1775):   at java.lang.Class.classForName(Native Method) 
06-23 14:32:18.380: E/AndroidRuntime(1775):   at java.lang.BootClassLoader.findClass(ClassLoader.java:781) 
06-23 14:32:18.380: E/AndroidRuntime(1775):   at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 
06-23 14:32:18.380: E/AndroidRuntime(1775):   at java.lang.ClassLoader.loadClass(ClassLoader.java:504) 
06-23 14:32:18.380: E/AndroidRuntime(1775):   ... 13 more 
06-23 14:32:18.380: E/AndroidRuntime(1775):  Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available 

這裏的清單:

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

<uses-sdk 
     android:minSdkVersion="11" 
     android:targetSdkVersion="22" /> 
    <uses-permission 
     android:name = "android.permission.INTERNET"/> 
    <uses-permission 
     android:name = "android.permission.BLUETOOTH_ADMIN"/> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 

     <activity 
      android:name="com.test.activities.SplashActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.test.activities.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
        <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.test.activities.MainMenuActivity" 
      android:label="@string/title_activity_main_menu" > 
     </activity> 
    </application> 

和這裏的活動:

public class SplashActivity extends Activity{ 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_splash); 

     Thread StartTimer = new Thread(){ 
      public void run(){ 
       try { 
        sleep(2000); 
        Intent main = new Intent(SplashActivity.this, MainActivity.class); 
        startActivity(main); 
        finish(); //kills the current activity 
       } 
       catch (InterruptedException ex){} 
      }  
     }; 
     StartTimer.start(); 
    } 
} 

下面是pom.xml中

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>test</groupId> 
    <artifactId>test</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <build> 
    <sourceDirectory>src</sourceDirectory> 
    <plugins> 
     <plugin> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>3.1</version> 
     <configuration> 
      <source>1.6</source> 
      <target>1.6</target> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
    <dependencies> 
    <dependency> 
     <groupId>com.squareup.okhttp</groupId> 
     <artifactId>mockwebserver</artifactId> 
     <version>2.4.0</version> 
    </dependency> 
    <dependency> 
    <groupId>com.google.code.gson</groupId> 
    <artifactId>gson</artifactId> 
    <version>2.3.1</version> 
</dependency> 

    </dependencies> 
</project> 

也這裏是第四Ë構建路徑設置:

enter image description here

導演結構: ​​

+2

請提供打包的apk的Maven構建腳本。 –

+0

嗨馬庫斯,我可以在哪裏找到它? – Gil404

+1

在您的AndroidManifest.xml中嘗試'.SplashActivity'而不是'com.test.activities.SplashActivity' –

回答

0

據我所知Maven構建系統等待一段pathes,檢查你的項目,你的源代碼應該位於的地方,如:

/src/main/java/com/test在你的情況下。

您的項目是否有這樣的結構?

同時,我建議命名爲GROUPID 「com.test」

https://spring.io/guides/gs/maven-android/

+0

我同意,你的頂級'com'包應該位於'src/main/java',而不僅僅是'src'。把它放在那裏,然後再試一次。嚴格遵守其慣例,因此很難解決它們,所以最好不要嘗試解決它們。 –

+0

@dilix,所以現在它是項目瀏覽器,我看到它main.java.com.test.activities。 辦法?你指的是什麼組合? – Gil404

+0

@Zoltán所以現在它是項目瀏覽器,我看到它main.java.com.test.activities。這是正確的方式嗎? – Gil404

相關問題