Я использую простой код Android в Eclispe ADT для android, чтобы изменить входную строку. Функция обратной строки написана отдельно, и я экспортировал ее как файл jar. Затем я добавил папку jar в libs моего проекта Android. в проекте eclipse не отображается ошибка amy, но во время выполнения после ввода пользовательской строки ввода и нажатия кнопки строки эмулятор показывает сообщение «К сожалению,« Мой первый проект »остановлен»
Это мой основной класс активности андроидов
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 Папка Reewerse, содержащая два файла классаPalindrome.class и
ReverseSentence.class
Исходный код двух классов: -
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.
Я использую Eclipse Juno EE в качестве Java IDE разработки и Eclipse java ADT в качестве платформы Android.
Это простая программа для проверки удобства использования jar-файла в android, но я получаю noClassDefFound-ошибку. Вероятно, что у меня что-то не хватает и проблема с силией, все-таки я застрял в этом.
Пожалуйста помоги....