我有一个非常简单的命令行Java应用程序,我希望移植到Android平台。该应用程序的作用是访问Internet上的网页并通过System.out.println打印一些输出。
从http://davanum.wordpress.com/2007/12/04/command-line-java-on-dalvikvm/开始,我意识到我可以将我的Java应用程序的jar文件转换为Android dex格式,然后转换为Android jar文件,然后可以使用dalvikvm运行。
然而,在我完成该操作并在Android手机上成功执行该程序后,我收到以下错误:
java.net.SocketException: Permission denied
我认为这必定是由于应用程序无权访问Internet,因为典型的Android apk应用程序将包含AndroidManifest.xml文件,该文件可以指定权限,例如:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
所以我在这里,寻求答案,我是否可以通过某种方式指定在准备好android jar文件或通过dalvikvm执行的过程中某处指定我需要互联网访问权限来构建一个完整的apk应用程序? / p>
答案 0 :(得分:2)
我认为问题是默认的shell用户(如果你运行adb shell
就是这个用户)可能没有INTERNET权限。由于我认为没有一种简单的方法可以在命令行上为用户添加权限,因此我不确定您是否能够完成此操作。