2017-02-06 22 views
0
  1. 「sf」という名前のライブラリに依存するメインプロジェクトを作成しました。

    java.lang.NoClassDefFoundError新しいアクティビティをjarで開始するとき

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

新しいactiveityを開始する意向を使用してライブラリで

  • 'SF' は、私は例外が言ってしまった:

    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> 
        ...... 
    

    Iこの例外が何を意味するのかを知っているので、まず私はjar fil e、そして "欠けている"クラスが存在します。誰もこれを経験しましたか?前もって感謝します。

  • 答えて

    0

    sf瓶はandroid-support-v4.jarに依存します。メインプロジェクトはsfに依存し、android-support-v4.jarOrder and Exportを追加します。

    解決済み。

    0

    リソースをjarファイルにパッケージ化することはできません。

    jarsとしてリソースを参照していない純粋なjavaファイルをパッケージ化できます。

    あなたの場合は、あなたのアンドロイドプロジェクトでライブラリプロジェクトを参照する必要があります。

    図書館プロジェクト

    これらのプロジェクトは、あなたがAndroidのプロジェクトで参照できる共有可能なAndroidのソースコードとリソースが含まれています。これは、再利用する共通コードがある場合に便利です。ライブラリプロジェクトをデバイスにインストールすることはできませんが、ビルド時に.apkファイルに引き込まれます。コメントでの質問に最も近いリソースへ

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

    を見つけることができるあなたは、JARファイルにライブラリプロジェクトをエクスポートすることはできません

    ライブラリはバイナリファイルとして配布することはできません(などJARファイル)。これはSDKツールの将来のバージョンで追加されます。

    How to create jar for Android Library Project

    また、以下のURLに見て。

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

    +0

    私はリソースをjarに入れず、ソースコードだけをパッケージ化し、リソースに関しては「java.lang.NoClassDefFoundError」を例外としてパッケージ化しませんでした。 – zsounder

    関連する問題