jarファイルを使用してアンドロイドコードにクラス定義エラーが見つかりません

私はEclispe ADTのアンドロイドのための単純なアンドロイドコードを入力文字列を逆にするために使用しています。逆の文字列関数は別々に書かれています。私はjarファイルとしてエクスポートしました。次に、私のAndroidプロジェクトのlibsフォルダにjarを追加しました。エクリプスはエイミーエラーを表示していませんが、ランタイムにユーザー入力文字列を入力して文字列ボタンをクリックすると、エミュレーターは「残念ながら「私の最初のプロジェクト」が停止しました」というメッセージを表示します

これは私の主なAndroidのアクティビティクラスです

package com.example.myfirstproject;

import Reverse.ReverseSentence;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.Menu;
import android.widget.Toast;
import android.widget.EditText;
import android.widget.RadioButton;

public class MainActivity extends Activity {
private EditText text1,text2;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    text1=(EditText)findViewById(R.id.editText1);
    text2=(EditText)findViewById(R.id.editText2);

}

public void onClick(View view) {
    switch (view.getId()) {
    case R.id.button1:
      RadioButton celsiusButton = (RadioButton) findViewById(R.id.radio0);
      RadioButton fahrenheitButton = (RadioButton) findViewById(R.id.radio1);
      if (text1.getText().length() == 0) {
        Toast.makeText(this, "Please enter a valid number",
            Toast.LENGTH_LONG).show();
        return;
      }

      float inputValue = Float.parseFloat(text1.getText().toString());
      if (celsiusButton.isChecked()) {
        text1.setText(String
            .valueOf(convertFahrenheitToCelsius(inputValue)));
        celsiusButton.setChecked(false);
        fahrenheitButton.setChecked(true);
      } else {
        text1.setText(String
            .valueOf(convertCelsiusToFahrenheit(inputValue)));
        fahrenheitButton.setChecked(false);
        celsiusButton.setChecked(true);
      }
      break;
    case R.id.button2:
        String inputString=text2.getText().toString();
        if(text2.getText().length()==0){
        Toast.makeText(this, "You have enetered blank ", Toast.LENGTH_LONG).show();
        return;
        }

        try{
        //Reverse.ReverseSentence rObj=new Reverse.ReverseSentence();
        ReverseSentence rObj=new ReverseSentence();

        String outputString=new String();
        outputString=rObj.reverseString(inputString);
        text2.setText(outputString);
        }
        catch(Exception e){
            e.printStackTrace();
        }
        break;
    }
  }
// Converts to celsius
  private float convertFahrenheitToCelsius(float fahrenheit) {
    return ((fahrenheit - 32) * 5/9);
  }

 //Converts to fahrenheit
  private float convertCelsiusToFahrenheit(float celsius) {
    return ((celsius * 9)/5) + 32;
  }

  //Reverses a string

  /*public String reverseString(String input){
        String original,reverse="";
        //Scanner scanner=new Scanner(System.in);

        original=input;
        System.out.println("The input string is "+ original);

        int length=original.length();

        for(int i=length-1;i>=0;i--){
            reverse=reverse+original.charAt(i);

            }

        return reverse;     

    }*/

@Override
public boolean onCreateOptionsMenu(Menu menu) {
   //Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

}

私が使用しているjarファイルには、次のコンポーネントがあります。             1 META-INFフォルダ、             2 .classpathファイル、             3 .propertiesファイル             4つのクラスPalindrome.classと
2つのクラスファイルを含むReeverse                ReverseSentence.class

2つのクラスのソースコードは次のとおりです。

Palindrome.class

package Reverse;

import java.util.*;

public class Palindrome {

public static void main(String args[]){
    System.out.println("Type a string to give input");
    Scanner scanner=new Scanner(System.in);
    String inputString=new String();
    String outputString=new String();
    inputString=scanner.nextLine();
    scanner.close();
    System.out.println("The input String is "+inputString);

    ReverseSentence r=new ReverseSentence();

    outputString=r.reverseString(inputString);

    System.out.println("The output String is "+outputString);
    if(inputString.equalsIgnoreCase(outputString)){
        System.out.println("The string is a palindrome");
    }
    else{
        System.out.println("The string is not a palindrome");
    }
        System.out.println("The program is working fine");

}

/**
 * @param args
 */


}

ReverseSentenceクラス: -

package Reverse;

public class ReverseSentence {

String original,reverse="";
public ReverseSentence(){

}
public ReverseSentence(String input){
    this.original=input;

}
public String reverseString(String input){

    //Scanner scanner=new Scanner(System.in);

    original=input;
    System.out.println("The input string is "+ original);

    int length=original.length();

    for(int i=length-1;i>=0;i--){
        reverse=reverse+original.charAt(i);

        }

    return reverse;     

}



}

I am not getting the solution to fix the problem.I have tried fix the Android preferences -> compiler-> JDK compliance to 1.7 as my java code is built using JDK 1.7. But I am still getting the app crash.

私は、Java開発IDEとしてEclipse Juno EEを、Android IDEとしてEclipse java ADTを使用しています。

これはアンドロイドでjarファイルのユーザビリティをチェックするシンプルなプログラムですが、noClassDefFoundエラーが発生しています。おそらく私は何かとそれほどシカリな問題がありません。

助けてください....

0
これについての答えがありますか?お持ちの場合は、下の回答を受け入れるか、下の自分の回答を投稿して引き続き受け入れることができますか?
追加された 著者 Freakyuser,
あなたのlogcatを表示してください...
追加された 著者 Mehul Ranpara,

2 答え

この方法で試してみてください...

1.Right click on your project and go to Properties.
2.go to java build path..//which is on the 5th position on left side
3.go to Order and Export tab.
4.check(Tick Mark) on your selected jar file. and click ok.
5.Now, clean your project and Run.
0
追加された
私はこれを試してみましたが、同じエラーを表示しています。私はアンドロイドコードからjarファイルのメソッドを呼び出すコード部分にエラーがありますか?
追加された 著者 Samrat,

あなたは2つの選択肢があると思います:

1- jarライブラリのコンパイラを1.6に設定します。

2 - または、あなたのjarライブラリを実際にアンドロイドプロジェクトにして、eclipseで "ライブラリ"としてマークします。

あなたのjarライブラリが全くアンドロイドコードを使用していない場合、私は1に行くでしょう。

0
追加された