Reputation: 11
i'm writing a translation app for android. Therefore I got a Bing account with a Client ID. I tried the translation API on java and it worked.
import com.memetix.mst.language.Language;
import com.memetix.mst.translate.Translate;
public class trans1 {
public static void main(String[] args) throws Exception {
Translate.setClientId("hidden");
Translate.setClientSecret("hidden");
String translatedText = Translate.execute("spiel", Language.GERMAN, Language.FRENCH);
System.out.println(translatedText);
}
}
Now I tried do use this in Android like this:
package de.androidnewcomer;
import com.memetix.mst.language.Language;
import com.memetix.mst.translate.Translate;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class SagHalloActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
Translate.setClientId("hidden");
Translate.setClientSecret("hidden");
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
String translatedText = Translate.execute("welt", Language.GERMAN, Language.FRENCH);
Log.i("LOG", translatedText);
} catch (Exception e) {
e.printStackTrace();
}
}
}
But I get this Errors:
09-18 12:53:34.001: E/AndroidRuntime(29488): FATAL EXCEPTION: main
09-18 12:53:34.001: E/AndroidRuntime(29488): java.lang.NoClassDefFoundError: com.memetix.mst.translate.Translate
09-18 12:53:34.001: E/AndroidRuntime(29488): at de.androidnewcomer.SagHalloActivity.onCreate(SagHalloActivity.java:14)
09-18 12:53:34.001: E/AndroidRuntime(29488): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-18 12:53:34.001: E/AndroidRuntime(29488): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
09-18 12:53:34.001: E/AndroidRuntime(29488): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
09-18 12:53:34.001: E/AndroidRuntime(29488): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
09-18 12:53:34.001: E/AndroidRuntime(29488): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
09-18 12:53:34.001: E/AndroidRuntime(29488): at android.os.Handler.dispatchMessage(Handler.java:99)
09-18 12:53:34.001: E/AndroidRuntime(29488): at android.os.Looper.loop(Looper.java:130)
09-18 12:53:34.001: E/AndroidRuntime(29488): at android.app.ActivityThread.main(ActivityThread.java:3691)
09-18 12:53:34.001: E/AndroidRuntime(29488): at java.lang.reflect.Method.invokeNative(Native Method)
09-18 12:53:34.001: E/AndroidRuntime(29488): at java.lang.reflect.Method.invoke(Method.java:507)
09-18 12:53:34.001: E/AndroidRuntime(29488): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
09-18 12:53:34.001: E/AndroidRuntime(29488): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
09-18 12:53:34.001: E/AndroidRuntime(29488): at dalvik.system.NativeStart.main(Native Method)
Can anybody help me?
Upvotes: 1
Views: 5029
Reputation: 21
you have to move your code to a thread
new Thread() {
public void run() {
try {
String translatedText = Translate.execute("welt", Language.GERMAN, Language.FRENCH);
Log.i("LOG", translatedText);`enter code here`
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
Upvotes: 0
Reputation: 16330
You might need to include Jar file which contains com.memetix.mst.language
package, under your library/lib folder which should resolve this problem.
Upvotes: 3