2012-05-08 5 views
1

上記の質問では、例外を見つけるために必要なすべてのcatchステートメントを入れました。ここに別のものがあります。私は例外を使って質問を投稿しています。なぜなら、それらを見てエラーを見つけるのは簡単だからです。私はアンドロイドに新しいので、私はこのタイプの質問を投稿しています。下記のコードを見てください。そのクラスの例外は例外を見つけました。しかし、私はjcifsパッケージjcifs-1.3.17.jarをロードしました。なぜ例外がスローされたのか分かりません。下記を参照してください。クラスが見つからないエラーのためのアンドロイドの致命的な例外

コード:

package com.android.accesspc; 
import jcifs.smb.NtlmPasswordAuthentication; 
import jcifs.smb.SmbFile; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class userpassActivity extends Activity 
{ 

    EditText userName,userPassword; 
    String uName,uPassword,IP,MAC; 
    void help(int x) 
    { 
     userName=(EditText)findViewById(R.id.userpassUsername); 
     uName = userName.getText().toString(); 
     userPassword=(EditText)findViewById(R.id.userpassPassword); 
     uPassword = userPassword.getText().toString(); 
     String url= "smb://" + IP + "/"; 
     NtlmPasswordAuthentication auth; 
     auth= new NtlmPasswordAuthentication(null,uName, uPassword); 
     try 
     { 
      SmbFile a[]=(new SmbFile(url, auth)).listFiles(); 
      switch(x) 
      { 
       case 0: 
          Intent intent=new Intent("com.android.accesspc.VIEW"); 
          intent.putExtra("IP",IP); 
          intent.putExtra("USERNAME",uName); 
          intent.putExtra("PASSWORD",uPassword); 
          startActivity(intent); 
          break; 
       case 1: 
          //code to switch off the system by checking users log on 
          //need to communicate with darshan's program 
       default: 
          finish(); 
      } 
     } 
     catch(Exception e) 
     { 
      Toast.makeText(this,"Username and password is invalid OR",Toast.LENGTH_SHORT).show(); 
      Toast.makeText(this,"Sytem may be busy OR",Toast.LENGTH_SHORT).show(); 
      Toast.makeText(this,"Network error",Toast.LENGTH_SHORT).show(); 
      Toast.makeText(this,"TRY AGAIN!!",Toast.LENGTH_SHORT).show(); 
     } 
    } 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.userpass); 
     final Bundle extras = getIntent().getExtras(); 
     if(extras !=null) 
     { 
      //values from previous activity 
      IP = extras.getString("IPfromMacIp"); 
      MAC = extras.getString("MACfromMacIp"); 
     } 
     Button send=(Button)findViewById(R.id.userpassSendButton); 
     send.setOnClickListener(new 
       View.OnClickListener() 
     { 
      public void onClick(View v) 
      { 
       if(extras !=null) 
       { 
        help(0); 
       } 
      } 
     }); 
     Button end=(Button)findViewById(R.id.userpassEndButton); 
     end.setOnClickListener(new 
       View.OnClickListener() 
     { 
      public void onClick(View v) 
      { 
       if(extras !=null) 
       { 
        help(1); 
       } 
      } 
     }); 
    } 
} 

例外:

05-08 17:17:42.905: E/AndroidRuntime(398): FATAL EXCEPTION: main 
05-08 17:17:42.905: E/AndroidRuntime(398): java.lang.NoClassDefFoundError: jcifs.smb.NtlmPasswordAuthentication 
05-08 17:17:42.905: E/AndroidRuntime(398): at com.android.accesspc.userpassActivity.help(userpassActivity.java:25) 
05-08 17:17:42.905: E/AndroidRuntime(398): at com.android.accesspc.userpassActivity$1.onClick(userpassActivity.java:73) 
05-08 17:17:42.905: E/AndroidRuntime(398): at android.view.View.performClick(View.java:2485) 
05-08 17:17:42.905: E/AndroidRuntime(398): at android.view.View.onKeyUp(View.java:4257) 
05-08 17:17:42.905: E/AndroidRuntime(398): at android.widget.TextView.onKeyUp(TextView.java:4566) 
05-08 17:17:42.905: E/AndroidRuntime(398): at android.view.KeyEvent.dispatch(KeyEvent.java:1280) 
05-08 17:17:42.905: E/AndroidRuntime(398): at android.view.View.dispatchKeyEvent(View.java:3855) 
05-08 17:17:42.905: E/AndroidRuntime(398): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:789) 
05-08 17:17:42.905: E/AndroidRuntime(398): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:789) 
05-08 17:17:42.905: E/AndroidRuntime(398): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:789) 
05-08 17:17:42.905: E/AndroidRuntime(398): at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:789) 
05-08 17:17:42.905: E/AndroidRuntime(398): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1687) 
05-08 17:17:42.905: E/AndroidRuntime(398): at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1120) 
05-08 17:17:42.905: E/AndroidRuntime(398): at android.app.Activity.dispatchKeyEvent(Activity.java:2073) 
05-08 17:17:42.905: E/AndroidRuntime(398): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1663) 
05-08 17:17:42.905: E/AndroidRuntime(398): at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2560) 
05-08 17:17:42.905: E/AndroidRuntime(398): at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2535) 
05-08 17:17:42.905: E/AndroidRuntime(398): at android.view.ViewRoot.handleMessage(ViewRoot.java:1867) 
05-08 17:17:42.905: E/AndroidRuntime(398): at android.os.Handler.dispatchMessage(Handler.java:99) 
05-08 17:17:42.905: E/AndroidRuntime(398): at android.os.Looper.loop(Looper.java:123) 
05-08 17:17:42.905: E/AndroidRuntime(398): at android.app.ActivityThread.main(ActivityThread.java:3683) 
05-08 17:17:42.905: E/AndroidRuntime(398): at java.lang.reflect.Method.invokeNative(Native Method) 
05-08 17:17:42.905: E/AndroidRuntime(398): at java.lang.reflect.Method.invoke(Method.java:507) 
05-08 17:17:42.905: E/AndroidRuntime(398): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
05-08 17:17:42.905: E/AndroidRuntime(398): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
05-08 17:17:42.905: E/AndroidRuntime(398): at dalvik.system.NativeStart.main(Native Method) 
+0

あなたの活動をmanifest.xmlに追加してください – Deepak

+0

これは本当にアンドロイドの質問ではありません...しかし、このファイルはどこですか? NtlmPasswordAuthentication? – Hades

+0

はこのメールを参照する必要があります.http://stackoverflow.com/questions/10046298/android-update-17-seems-incompatible-with-external-jars/10046725#10046725 – MAC

答えて

0

私は削除アンドロイド依存フォルダ。今はその作業

0

が(必要に応じてフォルダ名を変更する)はlibない、LIBS下jarファイルを置く

+0

申し訳ございませんが、同じ例外は – vij

+0

ですあなたはADTを使用していますか?最新の場合は、あなたのjarが "Android Dependencies"の下に表示されていることを確認してください(また、libsに名前を変更した後に「クリーン」を実行してください) – avimak

+0

adt 17.0.0..now最新のadtのバージョンは18.0.0です。しかし、同じプログラムをadt 16.0.0.1を持っている私の別のシステムで動かすと、細かく動作します.jdkの新しく作成されたlibsフォルダにすべてのjarファイルを入れました。ライブラリにjarファイルがあります。しかし私はアンドロイドの依存関係の下で自分のjarファイルを見つけていません – vij

関連する問題