ClassNotFoundException в сборке apk с maven

Я хочу переключиться на maven для моего процесса сборки в разработке для Android. Я следил заhttp://www.sonatype.com/books/mvnref-book/reference/android-dev-sect-archetype.htmlчтобы создать pom.xml и немного скорректировать версию, чтобы я использовал последнюю версию плагина android -maven -.

Хотя мой apk собирается вручную из моей IDE (IntellJ ), существуют проблемы с apk, созданным с помощью maven. Очевидно, чего-то не хватает, что не помещает классы в apk.

Когда я проверяю оба сгенерированных apk (, разархивируя их ), , я обнаруживаю, что class.dex сгенерированного maven apk намного меньше (2,6 КБ ), чем обычный (24,9 КБ ). Очевидно, что там не хватает классов.

Итак, при запуске этого apk я получаю следующую ошибку:

E/AndroidRuntime(31228): FATAL EXCEPTION: main
E/AndroidRuntime(31228): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mycompany.abc/com.mycompany.abc.ABCActivity}: java.lang.ClassNotFoundException: com.mycompany.abc.ABCActivity in loader dalvik.system.PathClassLoader[/mnt/asec/com.mycompany.abc-1/pkg.apk]
E/AndroidRuntime(31228):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
E/AndroidRuntime(31228):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
E/AndroidRuntime(31228):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
E/AndroidRuntime(31228):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
E/AndroidRuntime(31228):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(31228):    at android.os.Looper.loop(Looper.java:130)
E/AndroidRuntime(31228):    at android.app.ActivityThread.main(ActivityThread.java:3683)
E/AndroidRuntime(31228):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(31228):    at java.lang.reflect.Method.invoke(Method.java:507)
E/AndroidRuntime(31228):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
E/AndroidRuntime(31228):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
E/AndroidRuntime(31228):    at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(31228): Caused by: java.lang.ClassNotFoundException: com.mycompany.abc.ABCActivity in loader dalvik.system.PathClassLoader[/mnt/asec/com.mycompany.abc-1/pkg.apk]
E/AndroidRuntime(31228):    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
E/AndroidRuntime(31228):    at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
E/AndroidRuntime(31228):    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
E/AndroidRuntime(31228):    at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
E/AndroidRuntime(31228):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
E/AndroidRuntime(31228):   ... 11 more
W/ActivityManager( 4964):   Force finishing activity com.mycompany.abc/.ABCActivity
W/ActivityManager( 4964): Activity pause timeout for HistoryRecord{40902960 com.mycompany.abc/.ABCActivity}

Это мой pom.xml, на котором я использую:mvn install -P signилиmvn android:apk



  4.0.0
  com.mycompany
  com.mycompany.abc
  1.0-SNAPSHOT
  apk
  com.mycompany.abc

    
        
            com.google.android
            android
            2.2.1
            provided
        
    

    
        
            
                
                org.codehaus.mojo
                properties-maven-plugin
                1.0-alpha-2
                
                    
                        initialize
                        
                            read-project-properties
                        
                        
                            
                                android.properties
                            
                        
                    
                
            

            
                com.jayway.maven.plugins.android.generation2
                android-maven-plugin
                3.2.0
                
                    ${project.basedir}/AndroidManifest.xml
                    ${project.basedir}/assets
                    ${project.basedir}/res
                    ${project.basedir}/src/main/native
                    
                        11
                    
                    true
                    true
                    usb
                
                true
            

            
                maven-compiler-plugin
                2.3.2
                
                    1.6
                    1.6
                
            

            
                exec-maven-plugin
                org.codehaus.mojo
                
                    ${basedir}/scripts/run_app.sh
                
            

        
    

    
        
            sign
            
                
                    
                        org.apache.maven.plugins
                        maven-jarsigner-plugin
                        1.2
                        
                            
                                signing
                                
                                    sign
                                
                                package
                                true
                                
                                    
                                    
                                        target/*.apk
                                    
                                    /path/to/debug.keystore
                                    android
                                    android
                                    androiddebugkey
                                    
                                        -sigalgMD5withRSA
                                        -digestalgSHA1
                                    
                                
                            
                        
                    
                    
                        com.jayway.maven.plugins.android.generation2
                        android-maven-plugin
                        true
                        
                            
                                false
                            
                        
                    
                
            
        
    


5
задан j0k 25 February 2013 в 09:25
поделиться