这是我的简单测试程序
import java.io.IOException;
import android.net.LocalSocket;
import android.net.LocalSocketAddress;
public class TestAndroid
{
public TestAndroid() {
super();
}
private void run() throws IOException {
System.out.println("started");
LocalSocket ls = new LocalSocket();
System.out.println("connecting");
ls.connect(new LocalSocketAddress("blablabla"));
System.out.println("connected");
}
public static void main(String argv[])
{
try {
new TestAndroid().run();
} catch (Exception e) {
e.printStackTrace();
}
}
}
我使用的是Oracle jdk 1.6.0,这是一个构建命令
javac -cp $ANDROID_SDK_ROOT/platforms/android-9/android.jar TestAndroid.java
dx --dex --output=test.dex TestAndroid.class
此命令在Android上的colsole中运行测试应用程序
dalvikvm -cp test.dex TestAndroid
started
connecting
java.lang.UnsatisfiedLinkError: Native method not found: android.net.LocalSocketImpl.connectLocal:(Ljava/io/FileDescriptor;Ljava/lang/String;I)V
at android.net.LocalSocketImpl.connectLocal(Native Method)
at android.net.LocalSocketImpl.connect(LocalSocketImpl.java:287)
at android.net.LocalSocket.connect(LocalSocket.java:130)
at TestAndroid.run(TestAndroid.java:17)
at TestAndroid.main(TestAndroid.java:24)
at dalvik.system.NativeStart.main(Native Method)
我的代码有什么问题?我认为android.net.LocalSocket可用于任何Android系统。
答案 0 :(得分:0)
此示例无效。它必须是带有清单的android应用程序的标准项目。如果该代码放入此类项目中,则此代码将被视为已被解除。