【问题标题】:Socket Error # 13 Access denied connecting with FTP套接字错误 #13 访问被拒绝与 FTP 连接
【发布时间】:2014-03-17 16:20:02
【问题描述】:

我正在使用 Embarcadero RAD Studio XE5。 我正在为 Android 做 FTP 服务器。 使用的组件:IdFTPServer。

我写道:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Server.DefaultPort := 21;
  Server.DefaultDataPort := 21;
  Server.Active := true;
end;

得到错误:

First chance exception at $546D6023. Exception class EIdSocketError with message
'Socket Error # 13
Access denied.'.
Process Project1.apk (25778)

如何解决这个错误?

我的 XML 清单中有 <uses-permission android:name="android.permission.INTERNET" />。

【问题讨论】:

  • 您确定您正确启用了 INTERNET 权限吗?如果您升级到最新的 SVN 快照,Indy 现在会在遇到错误 #13 并且未授予 INTERNET (see this) 时引发 EIdInternetPermissionNeeded 异常。引发异常时调用堆栈是什么样的?是在激活服务器时发生,还是在连接客户端时发生?为什么要将 DefaultPort 和 DefaultDataPort 设置为同一个端口?
  • 我在 Windows 上编写了完全相同的服务器,一切正常。服务器无法在 android 上启动...请帮助我!
  • Windows 不像 Android 那样使用权限。这对我来说仍然像是一个权限问题,这就是为什么您需要绝对确定您的应用程序确实在启用 INTERNET 权限的情况下运行。请记住,权限可以隔离到特定的构建配置,因此请确保您的所有配置都使用相同的权限。
  • 我如何检查这个?

标签: android delphi ftp indy delphi-xe5


【解决方案1】:

互联网使用权限有问题。

转到项目选项 - 使用权限。检查是否为 Android 平台选择了 Release Config。 应检查 Internet 节点。 然而,这还不够(或根本工作) 现在打开您的 AndroidManifest.template.xml(注意!!它是您源目录中的模板文件)

在文件中找到:,并在下面写下:

<uses-permission android:name="android.permission.INTERNET" />

您不能直接在 project/Android/Release/projectName 目录中编辑 AndroidManifest.xml,因为每次编译(或构建,我不确定)时该文件都会被覆盖

希望对你有所帮助

问候 延斯福吉

【讨论】:

    猜你喜欢
    • 2019-12-22
    • 2014-04-23
    • 1970-01-01
    • 2016-01-31
    • 2015-08-26
    • 2013-12-19
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    相关资源
    最近更新 更多