【错误】android invalid command-line parameter: Files. Hint: use '@foo' to launch a virtual device name

Eclipse里的AVD MANAGER 打开AVD时,出错。

错误内容:invalid command-line parameter: Files.

                    Hint: use '@foo' to launch a virtual device named 'foo'.

                    please use -help for more information

出错时的操作:1,我在更新SDK,装了一个包,提示错误(某个包正在被使用),

                           2.我在安装sample程序snake

参考资料:http://stackoverflow.com/questions/6638713/android-emulator-is-not-starting-showing-invalid-command-line-parameter

                    根据查的资料,是R12版带进来的BUG,而且是SDK位于有空格的目录是出错

解决办法:重新配置Eclipse的SDK目录,非64系统:C:\Progra~1\Android\android-sdk

                                                                              64系统:C:\Progra~2\Android\android-sdk


照上述解决后,Eclipse里的可以正常使用,但是在当初安装的SDK Manager里启动时还是有错。

最好以后注意SDK放在没有空格的地方。

你遇到的这个错误信息: ``` # command-line-arguments link: vitess.io/vitess/go/hack: invalid reference to runtime.roundupsize ``` 通常出现在 Go 语言项目中,特别是在使用了某些依赖 Vitess 或者低级内存操作的库时。这个错误的核心是: ``` invalid reference to runtime.roundupsize ``` 这表明你的代码或者某个依赖包中引用了 Go 标准库 `runtime` 包中的一个非公开(未导出)函数 `roundupsize`,而这个函数在 Go 的某些版本中可能已经被移除、重命名或更改了签名。 --- ### 问题原因分析: Go 的 `runtime.roundupsize(size)` 函数曾经是内部使用的,用于内存分配时对齐大小(例如,分配内存时按照内存对齐规则向上取整)。这个函数在 Go 1.19 之前是存在的,但在之后的版本中被移除了,取而代之的是 `runtime.roundupsize(uintptr)` 作为一个私有函数。 如果你的项目或依赖中直接引用了这个函数(如 `runtime.roundupsize`),那么在使用较新的 Go 版本编译时就会报错。 --- ### 解决方案: #### ✅ 方法一:降级 Go 版本 如果你无法修改依赖代码,可以考虑降级到 Go 1.18 或更低版本,因为这些版本仍然包含 `runtime.roundupsize` 函数。 ```bash # 安装特定版本的 Go # macOS 使用 brew brew install go@1.18 # Linux 使用官方下载 wget https://dl.google.com/go/go1.18.linux-amd64.tar.gz sudo tar -C /usr/local -xzf go1.18.linux-amd64.tar.gz ``` 然后设置环境变量: ```bash export PATH=/usr/local/go/bin:$PATH export GOROOT=/usr/local/go ``` #### ✅ 方法二:修改源码替换 `roundupsize` 实现 如果你可以修改源码,建议将对 `runtime.roundupsize` 的调用替换为自定义实现。 下面是一个等价的实现(来自 Go 源码): ```go package yourpkg import ( "unsafe" ) // 自定义实现 roundupsize func roundupsize(size uintptr) uintptr { if size <= _MaxSmallSize { // 根据 sizeclass 表向上取整 var class uint8 if size <= smallSizeMax-8 { class = size_to_class8[(size+7)>>3] } else { class = size_to_class128[(size-smallSizeMax+127)>>7] } size = uintptr(class_to_size[class]) } return size } const ( _MaxSmallSize = 32768 smallSizeMax = 1024 ) // 这些表是简化版本,实际 Vitess 中有更完整的实现 var ( size_to_class8 = [256]uint8{} size_to_class128 = [256]uint8{} class_to_size = [256]uint16{} ) ``` 你可以用这个函数替换所有 `runtime.roundupsize` 的调用。 --- #### ✅ 方法三:升级依赖库 如果你使用的是 Vitess 或某个第三方库,建议检查是否有新版本已经修复了这个问题。例如: ```bash go get vitess.io/vitess@latest ``` 或者查看其 GitHub 仓库的 issue 或 PR 是否提到了这个问题。 --- ### 总结 这个错误是因为你使用了一个 Go 内部 API,而该 API 已被移除。解决方式包括: 1. 降级 Go 到 1.18 或更早 2. 替换掉 `runtime.roundupsize` 为自定义实现 3. 升级依赖库到兼容新 Go 版本的版本 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值