Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 意外的顶级异常:非法参数异常_Java_Android_Exception - Fatal编程技术网

Java 意外的顶级异常:非法参数异常

Java 意外的顶级异常:非法参数异常,java,android,exception,Java,Android,Exception,我试图运行一个在eclipse中设置的tcp服务器,但是当我尝试运行它时,控制台中出现了以下问题。如果我需要添加任何其他Java文件,而不是我包含的文件,请告诉我 [2012-08-07 09:13:16 - com.Proto1] Dx UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Leneter/messaging/dataprocessing/messagequeuei

我试图运行一个在eclipse中设置的tcp服务器,但是当我尝试运行它时,控制台中出现了以下问题。如果我需要添加任何其他Java文件,而不是我包含的文件,请告诉我

[2012-08-07 09:13:16 - com.Proto1] Dx 
UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: Leneter/messaging/dataprocessing/messagequeueing/MessageQueue$1;
    at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
    at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
    at com.android.dx.command.dexer.Main.processClass(Main.java:486)
    at com.android.dx.command.dexer.Main.processFileBytes(Main.java:455)
    at com.android.dx.command.dexer.Main.access$400(Main.java:67)
    at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:394)
    at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
    at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:131)
    at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:109)
    at com.android.dx.command.dexer.Main.processOne(Main.java:418)
    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:329)
    at com.android.dx.command.dexer.Main.run(Main.java:206)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.android.ide.eclipse.adt.internal.build.DexWrapper.run(DexWrapper.java:180)
    at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:703)
    at com.android.ide.eclipse.adt.internal.build.builders.PostCompilerBuilder.build(PostCompilerBuilder.java:577)
    at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:728)
    at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199)
    at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:321)
    at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:396)
    at org.eclipse.core.internal.resources.Project$1.run(Project.java:618)
    at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
    at org.eclipse.core.internal.resources.Project.internalBuild(Project.java:597)
    at org.eclipse.core.internal.resources.Project.build(Project.java:124)
    at com.android.ide.eclipse.adt.internal.project.ProjectHelper.doFullIncrementalDebugBuild(ProjectHelper.java:1000)
    at com.android.ide.eclipse.adt.internal.launch.LaunchConfigDelegate.launch(LaunchConfigDelegate.java:147)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:855)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:704)
    at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1047)
    at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1251)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
[2012-08-07 09:13:16 - com.Proto1] Dx 1 error; aborting
[2012-08-07 09:13:16 - com.Proto1] Conversion to Dalvik format failed with error 1
爪哇

导入eneter.messaging.diagnostic.EneterTrace;
导入eNet.messaging.endpoints.typedmessages.*;
导入eNet.messaging.messagingsystems.messagingsystembase.*;
导入eneter.messaging.messagingsystems.tcpmessagingsystem.TcpMessagingSystemFactory;
导入eNet.system.EventHandler;
导入android.app.Activity;
导入android.os.Bundle;
导入android.os.Handler;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.*;
公共类AndroidNetCommunicationClient扩展活动{
//请求消息类型
//消息必须与服务中声明的名称相同。
//另外,如果消息是内部类,那么它必须是静态的。
公共静态类MyRequest{
公共字符串文本;
}
//响应消息类型
//消息必须与服务中声明的名称相同。
//另外,如果消息是内部类,那么它必须是静态的。
公共静态类MyResponse{
公共整数长度;
}
//用户界面控件
私有处理程序myRefresh=新处理程序();
私有编辑文本myMessageTextEditText;
私人编辑文本myResponseEditText;
私有按钮mySendRequestBtn;
//发送方发送MyRequest并作为响应接收MyResponse。
私有IDuplexTypedMessageSender mySender;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.tcp_服务器);
//获取UI小部件。
myMessageTextEditText=(EditText)findViewById(R.id.messageTextEditText);
MyResponseEditeText=(EditText)findViewById(R.id.messageLengthEditText);
mySendRequestBtn=(按钮)findViewById(R.id.sendRequestBtn);
//点击订阅处理按钮。
mySendRequestBtn.setOnClickListener(myOnSendRequestClickHandler);
试一试{
openConnection();
}捕获(异常错误){
错误(“打开连接失败”,错误);
}
}
@凌驾
公共空间{
//停止收听响应消息。
detachDuplexOutputChannel();
}
私有void openConnection()引发异常{
//创建发送方发送MyRequest并作为响应接收
//我的反应
IDuplexTypedMessageFactory aSenderFactory=新的DuplexTypedMessageFactory();
mySender=aSenderFactory.createDuplexTypedMessageSender(
MyResponse.class、MyRequest.class);
//订阅以接收响应消息。
mySender.responseReceived().subscribe(myOnResponseHandler);
//为通信创建TCP消息传递。
//注:10.0.2.2是环回的特殊别名(127.0.0.1)
//关于开发机器
IMessagingSystemFactory aMessaging=新的TcpMessagingSystemFactory();
IDuplexOutputChannel anOutputChannel=aMessaging
.createDuplexOutputChannel(“tcp://10.0.2.2:8060/");
//将输出通道连接到发送器并能够发送
//消息和接收响应。
attachDuplexOutputChannel(anOutputChannel);
}
私有void onSendRequest(视图v){
//创建请求消息。
MyRequest aRequestMsg=新的MyRequest();
aRequestMsg.Text=myMessageTextEditText.getText().toString();
//发送请求消息。
试一试{
sendRequestMessage(aRequestMsg);
}捕获(异常错误){
错误(“发送消息失败。”,err);
}
}
接收到响应时出现私有无效(对象发送方,
最终类型DResponseReceivedEventArgs(e){
//显示结果-返回的字符数。
//注意:封送显示到正确的UI线程。
myRefresh.post(新的Runnable(){
公开募捐{
myResponseEditText.setText(整数.toString(e
.getResponseMessage().Length));
}
});
}
私有事件处理程序myOnResponseHandler
=新的EventHandler(){
public void onEvent(对象发送方,
类型dResponseReceivedEventArgs(e){
onResponseReceived(发送方,e);
}
};
private OnClickListener myOnSendRequestClickHandler=new OnClickListener(){
公共void onClick(视图v){
onSendRequest(v);
}
};
}

我从构建路径中删除了一个无效的jar文件,问题得到了解决

import eneter.messaging.diagnostic.EneterTrace;
import eneter.messaging.endpoints.typedmessages.*;
import eneter.messaging.messagingsystems.messagingsystembase.*;
import eneter.messaging.messagingsystems.tcpmessagingsystem.TcpMessagingSystemFactory;
import eneter.net.system.EventHandler;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;

public class AndroidNetCommunicationClientActivity extends Activity {
    // Request message type
    // The message must have the same name as declared in the service.
    // Also, if the message is the inner class, then it must be static.
    public static class MyRequest {
        public String Text;
    }

    // Response message type
    // The message must have the same name as declared in the service.
    // Also, if the message is the inner class, then it must be static.
    public static class MyResponse {
        public int Length;
    }

    // UI controls
    private Handler myRefresh = new Handler();
    private EditText myMessageTextEditText;
    private EditText myResponseEditText;
    private Button mySendRequestBtn;

    // Sender sending MyRequest and as a response receiving MyResponse.
    private IDuplexTypedMessageSender<MyResponse, MyRequest> mySender;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tcp_server);

        // Get UI widgets.
        myMessageTextEditText = (EditText) findViewById(R.id.messageTextEditText);
        myResponseEditText = (EditText) findViewById(R.id.messageLengthEditText);
        mySendRequestBtn = (Button) findViewById(R.id.sendRequestBtn);

        // Subscribe to handle the button click.
        mySendRequestBtn.setOnClickListener(myOnSendRequestClickHandler);

        try {
            openConnection();
        } catch (Exception err) {
            EneterTrace.error("Open connection failed.", err);
        }
    }

    @Override
    public void onDestroy() {
        // Stop listening to response messages.
        mySender.detachDuplexOutputChannel();
    }

    private void openConnection() throws Exception {
        // Create sender sending MyRequest and as a response receiving
        // MyResponse
        IDuplexTypedMessagesFactory aSenderFactory = new DuplexTypedMessagesFactory();
        mySender = aSenderFactory.createDuplexTypedMessageSender(
                MyResponse.class, MyRequest.class);

        // Subscribe to receive response messages.
        mySender.responseReceived().subscribe(myOnResponseHandler);

        // Create TCP messaging for the communication.
        // Note: 10.0.2.2 is a special alias to the loopback (127.0.0.1)
        // on the development machine
        IMessagingSystemFactory aMessaging = new TcpMessagingSystemFactory();
        IDuplexOutputChannel anOutputChannel = aMessaging
                .createDuplexOutputChannel("tcp://10.0.2.2:8060/");

        // Attach the output channel to the sender and be able to send
        // messages and receive responses.
        mySender.attachDuplexOutputChannel(anOutputChannel);
    }

    private void onSendRequest(View v) {
        // Create the request message.
        MyRequest aRequestMsg = new MyRequest();
        aRequestMsg.Text = myMessageTextEditText.getText().toString();

        // Send the request message.
        try {
            mySender.sendRequestMessage(aRequestMsg);
        } catch (Exception err) {
            EneterTrace.error("Sending the message failed.", err);
        }
    }

    private void onResponseReceived(Object sender,
            final TypedResponseReceivedEventArgs<MyResponse> e) {
        // Display the result - returned number of characters.
        // Note: Marshal displaying to the correct UI thread.
        myRefresh.post(new Runnable() {
            public void run() {
                myResponseEditText.setText(Integer.toString(e
                        .getResponseMessage().Length));
            }
        });
    }

    private EventHandler<TypedResponseReceivedEventArgs<MyResponse>> myOnResponseHandler

    = new EventHandler<TypedResponseReceivedEventArgs<MyResponse>>() {
        public void onEvent(Object sender,
                TypedResponseReceivedEventArgs<MyResponse> e) {
            onResponseReceived(sender, e);
        }
    };

    private OnClickListener myOnSendRequestClickHandler = new OnClickListener() {
        public void onClick(View v) {
            onSendRequest(v);
        }
    };
}