2017-02-06 57 views
0
  1. 主项目依赖于名为'sf'的库。
  2. 在库 '科幻',使用意向,开始新的activeity使用意图在jar中启动新活动时发生java.lang.NoClassDefFoundError

    import com.sf.proxy.MainActivity; 
    public void login(Activity context) { 
        Intent intent = new Intent(context,MainActivity.class); 
        context.startActivity(intent); 
    } 
    

我得到了一个异常说:

02-06 10:07:58.198: D/AndroidRuntime(9770): Shutting down VM 
    02-06 10:07:58.198: W/dalvikvm(9770): threadid=1: thread exiting with uncaught exception (group=0xa6251288) 
    02-06 10:07:58.198: E/AndroidRuntime(9770): FATAL EXCEPTION: main 
    02-06 10:07:58.198: E/AndroidRuntime(9770): java.lang.IllegalStateException: Could not execute method of the activity 
    02-06 10:07:58.198: E/AndroidRuntime(9770):  at android.view.View$1.onClick(View.java:3591) 
    02-06 10:07:58.198: E/AndroidRuntime(9770):  at android.view.View.performClick(View.java:4084) 
    02-06 10:07:58.198: E/AndroidRuntime(9770):  at android.view.View$PerformClick.run(View.java:16966) 
    02-06 10:07:58.198: E/AndroidRuntime(9770):  at android.os.Handler.handleCallback(Handler.java:615) 
    02-06 10:07:58.198: E/AndroidRuntime(9770):  at android.os.Handler.dispatchMessage(Handler.java:92) 
    02-06 10:07:58.198: E/AndroidRuntime(9770):  at android.os.Looper.loop(Looper.java:137) 
    02-06 10:07:58.198: E/AndroidRuntime(9770):  at android.app.ActivityThread.main(ActivityThread.java:4745) 
    02-06 10:07:58.198: E/AndroidRuntime(9770):  at java.lang.reflect.Method.invokeNative(Native Method) 
    02-06 10:07:58.198: E/AndroidRuntime(9770):  at java.lang.reflect.Method.invoke(Method.java:511) 
    02-06 10:07:58.198: E/AndroidRuntime(9770):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
    02-06 10:07:58.198: E/AndroidRuntime(9770):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
    02-06 10:07:58.198: E/AndroidRuntime(9770):  at dalvik.system.NativeStart.main(Native Method) 
    02-06 10:07:58.198: E/AndroidRuntime(9770): Caused by: java.lang.reflect.InvocationTargetException 
    02-06 10:07:58.198: E/AndroidRuntime(9770):  at java.lang.reflect.Method.invokeNative(Native Method) 
    02-06 10:07:58.198: E/AndroidRuntime(9770):  at java.lang.reflect.Method.invoke(Method.java:511) 
    02-06 10:07:58.198: E/AndroidRuntime(9770):  at android.view.View$1.onClick(View.java:3586) 
    02-06 10:07:58.198: E/AndroidRuntime(9770):  ... 11 more 
    02-06 10:07:58.198: E/AndroidRuntime(9770): Caused by: java.lang.NoClassDefFoundError: com.sf.proxy.MainActivity 

的Manifest.xml

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

    <supports-screens 
     android:anyDensity="true" 
     android:largeScreens="true" 
     android:normalScreens="true" /> 
    <application 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme"> 
     <activity 
      android:name="com.sf.proxy.MainActivity" 
      android:configChanges="orientation|screenSize|keyboardHidden" 
      android:screenOrientation="sensor" 
      android:theme="@android:style/Theme.Translucent.NoTitleBar"> 
     </activity> 
    ...... 

我知道这个例外意味着什么,所以首先我看着罐子里面e,和“失踪”的课程确实存在。所有人都经历过这种情况?提前致谢。

回答

0

sf罐子取决于android-support-v4.jar。主项目取决于sf,增加android-support-v4.jarOrder and Export

已解决。

0

您无法将资源打包到jar文件中。

您可以打包不包含任何资源的纯java文件作为jar包。

在你的情况下,你需要引用你的android项目中的库项目。

库项目

这些项目包含可共享的Android源代码和资源,你可以在Android的项目中引用。当您想要重复使用通用代码时,这非常有用。库项目无法安装到设备上,但是,它们在构建时被拉到.apk文件中。

http://developer.android.com/tools/projects/index.html

在注释的问题最接近的资源可以找到

你不能将库项目导出到一个JAR文件

库不能被分配为二进制文件(如一个JAR文件)。这将在未来版本的SDK工具中添加。

How to create jar for Android Library Project

另外,看看到下面的网址。

http://blog.sofisoftware.com/post/2011/10/05/Android-Library-projects-and-Jars

+0

我没有将任何资源打包到jar中,只是源代码和异常说'java.lang.NoClassDefFoundError',而不是资源。 – zsounder

相关问题