0

DateTime クラスを使用して現在の日付と時刻を取得したいので、http://sourceforge.net/projects/joda-time/files/joda-time/から Joda をダウンロードしました。

そして、抽出されたフォルダーにある3つのjarファイルをプロジェクトプロパティのJavaビルドパスに追加しました。私のコードは次のコードのようです:

import org.joda.time.DateTime;



public class TappedNFC extends Activity {

    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_tapped_nfc);
            
            
            Button BeamButton=(Button)findViewById(R.id.BeamButton);
            BeamButton.setOnClickListener(new OnClickListener() {
                
                public void onClick(View v) {
                    
                     DateTime dt = new DateTime();
                      int month = dt.getMonthOfYear();
                    
                TextView tx=(TextView)findViewById(R.id.textView1);
                tx.setText(Integer.toString(month));
                
                }
            });
        }

しかし、logcat は例外を取得します:

03-04 14:57:18.309: E/AndroidRuntime(540): FATAL EXCEPTION: main
03-04 14:57:18.309: E/AndroidRuntime(540): java.lang.NoClassDefFoundError: org.joda.time.DateTime
03-04 14:57:18.309: E/AndroidRuntime(540):  at com.example.tappednfc.TappedNFC$1.onClick(TappedNFC.java:28)
03-04 14:57:18.309: E/AndroidRuntime(540):  at android.view.View.performClick(View.java:3460)
03-04 14:57:18.309: E/AndroidRuntime(540):  at android.view.View$PerformClick.run(View.java:13955)
03-04 14:57:18.309: E/AndroidRuntime(540):  at android.os.Handler.handleCallback(Handler.java:605)
03-04 14:57:18.309: E/AndroidRuntime(540):  at android.os.Handler.dispatchMessage(Handler.java:92)
03-04 14:57:18.309: E/AndroidRuntime(540):  at android.os.Looper.loop(Looper.java:137)
03-04 14:57:18.309: E/AndroidRuntime(540):  at android.app.ActivityThread.main(ActivityThread.java:4340)
03-04 14:57:18.309: E/AndroidRuntime(540):  at java.lang.reflect.Method.invokeNative(Native Method)
03-04 14:57:18.309: E/AndroidRuntime(540):  at java.lang.reflect.Method.invoke(Method.java:511)
03-04 14:57:18.309: E/AndroidRuntime(540):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
03-04 14:57:18.309: E/AndroidRuntime(540):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
03-04 14:57:18.309: E/AndroidRuntime(540):  at dalvik.system.NativeStart.main(Native Method)

Joda を使用したことがないので、この問題の解決を手伝ってください。どうもありがとう。

4

1 に答える 1

0

それらをビルドパスに追加したと言うとき、「プロパティ」>「Javaビルドパス」>「外部ジャーの追加」の通常の(ただしAndroidでは正しくない)ルートを使用しましたか? Android プロジェクトに外部 jar をバンドルする正しい方法は、「libs」(複数形であることに注意) ディレクトリを作成し、そのディレクトリの下に直接貼り付けることです。

プロジェクトのビルドでは、依存する jar が [Android 依存関係] の下に表示され、APK に正しくバンドルされます。そのルートに従わない場合、外部 jar は追加されず、メモした種類の例外が表示されます。

于 2013-03-04T12:03:52.833 に答える