此 Activity 一开始,我的应用程序就会崩溃。单击按钮时它不会崩溃。代码如下
package com.example.testing;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import com.memetix.mst.language.Language;
import com.memetix.mst.translate.Translate;
public class TranslateActivity extends Activity implements OnClickListener {
EditText etInput;
EditText etOutput;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_translate);
Translate.setClientId("hidden");
Translate.setClientSecret("hidden");
Button Trans = (Button)findViewById(R.id.translate);
Trans.setOnClickListener(this);
etInput = (EditText)findViewById(R.id.input);
etOutput = (EditText)findViewById(R.id.output);
}
@Override
public void onClick(View v) {
//get the text entered
String In =etInput.getText().toString();
//String Out;
try {
String Out = Translate.execute(In, Language.AUTO_DETECT, Language.FRENCH);
etInput.setText(Out);
etOutput.setText(Out);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
ClientId 和 Client Secret 是字符串,所以我将它们放在“”之间...是吗...
Logcat如下:
04-04 14:05:45.250: D/dalvikvm(1002): GC_FOR_ALLOC freed 68K, 5% free 2888K/3040K, paused 242ms, total 263ms
04-04 14:05:45.260: I/dalvikvm-heap(1002): Grow heap (frag case) to 4.726MB for 1920016-byte allocation
04-04 14:05:45.360: D/dalvikvm(1002): GC_FOR_ALLOC freed 2K, 4% free 4760K/4916K, paused 91ms, total 91ms
04-04 14:05:47.860: E/MediaPlayer(1002): Should have subtitle controller already set
04-04 14:05:48.610: D/gralloc_goldfish(1002): Emulator without GPU emulation detected.
04-04 14:05:49.500: D/dalvikvm(1002): GC_FOR_ALLOC freed 12K, 2% free 4904K/4996K, paused 35ms, total 36ms
04-04 14:05:50.330: I/Choreographer(1002): Skipped 121 frames! The application may be doing too much work on its main thread.
04-04 14:05:55.970: D/dalvikvm(1002): GC_FOR_ALLOC freed 31K, 2% free 5551K/5664K, paused 32ms, total 42ms
04-04 14:05:56.040: D/dalvikvm(1002): GC_FOR_ALLOC freed 1920K, 32% free 4442K/6480K, paused 32ms, total 32ms
04-04 14:05:56.070: I/Choreographer(1002): Skipped 37 frames! The application may be doing too much work on its main thread.
04-04 14:05:57.330: I/Choreographer(1002): Skipped 30 frames! The application may be doing too much work on its main thread.
04-04 14:05:59.130: W/dalvikvm(1002): VFY: unable to resolve static field 1592 (AUTO_DETECT) in Lcom/memetix/mst/language/Language;
04-04 14:05:59.140: D/dalvikvm(1002): VFY: replacing opcode 0x62 at 0x000a
04-04 14:05:59.140: I/dalvikvm(1002): Could not find method com.memetix.mst.translate.Translate.setClientId, referenced from method com.example.testing.TranslateActivity.onCreate
04-04 14:05:59.140: W/dalvikvm(1002): VFY: unable to resolve static method 5277: Lcom/memetix/mst/translate/Translate;.setClientId (Ljava/lang/String;)V
04-04 14:05:59.140: D/dalvikvm(1002): VFY: replacing opcode 0x71 at 0x000b
04-04 14:05:59.250: I/Choreographer(1002): Skipped 34 frames! The application may be doing too much work on its main thread.
04-04 14:05:59.430: D/dalvikvm(1002): GC_FOR_ALLOC freed 1363K, 44% free 3640K/6480K, paused 80ms, total 84ms
04-04 14:05:59.890: D/AndroidRuntime(1002): Shutting down VM
04-04 14:05:59.890: W/dalvikvm(1002): threadid=1: thread exiting with uncaught exception (group=0xb3ad1b90)
04-04 14:05:59.930: E/AndroidRuntime(1002): FATAL EXCEPTION: main
04-04 14:05:59.930: E/AndroidRuntime(1002): Process: com.example.testing, PID: 1002
04-04 14:05:59.930: E/AndroidRuntime(1002): java.lang.NoClassDefFoundError: com.memetix.mst.translate.Translate
04-04 14:05:59.930: E/AndroidRuntime(1002): at com.example.testing.TranslateActivity.onCreate(TranslateActivity.java:21)
04-04 14:05:59.930: E/AndroidRuntime(1002): at android.app.Activity.performCreate(Activity.java:5243)
04-04 14:05:59.930: E/AndroidRuntime(1002): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
04-04 14:05:59.930: E/AndroidRuntime(1002): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140)
04-04 14:05:59.930: E/AndroidRuntime(1002): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
04-04 14:05:59.930: E/AndroidRuntime(1002): at android.app.ActivityThread.access$700(ActivityThread.java:135)
04-04 14:05:59.930: E/AndroidRuntime(1002): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
04-04 14:05:59.930: E/AndroidRuntime(1002): at android.os.Handler.dispatchMessage(Handler.java:102)
04-04 14:05:59.930: E/AndroidRuntime(1002): at android.os.Looper.loop(Looper.java:137)
04-04 14:05:59.930: E/AndroidRuntime(1002): at android.app.ActivityThread.main(ActivityThread.java:4998)
04-04 14:05:59.930: E/AndroidRuntime(1002): at java.lang.reflect.Method.invokeNative(Native Method)
04-04 14:05:59.930: E/AndroidRuntime(1002): at java.lang.reflect.Method.invoke(Method.java:515)
04-04 14:05:59.930: E/AndroidRuntime(1002): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
04-04 14:05:59.930: E/AndroidRuntime(1002): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
04-04 14:05:59.930: E/AndroidRuntime(1002): at dalvik.system.NativeStart.main(Native Method)
04-04 14:06:06.350: I/Process(1002): Sending signal. PID: 1002 SIG: 9
最佳答案
您是否已将 jar 文件添加到您的项目中?
您需要下载 jar 文件并将其添加到您的类路径中。
请按照以下步骤操作:
- 将 jar 文件下载到目录:https://code.google.com/p/microsoft-translator-java-api/downloads/list
- 在 Eclipse 中,右键单击您的 libs 文件夹,然后转到“导入”->“常规”->“文件系统”,然后浏览到下载 jar 文件的目录,然后单击“确定”。然后从 Eclipse 窗口中选择 jar 文件,然后单击完成将 jar 添加到您的项目
- 右键单击您的项目并转到“构建路径”->“配置构建路径”,然后单击“库”选项卡并添加 jar。导航到 libs 文件夹中的 jar 文件,然后单击“完成/完成/确定”。
关于java - 必应翻译 API 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22870060/