将游戏版本改名后,有概率下载失败
检查项
- [x] 我已尝试使用其他启动器,其他启动器没有出现问题。 如果其他启动器也存在问题,证明是网络环境不佳(解决方法),并非 PCL 的问题,请 不要 提交反馈。下载 HMCL
- [X] 我知晓大多数此类问题都是网络环境不佳导致的,但我确实认为我的问题可能是 PCL 导致的,和网络环境无关。
- [X] 我已在 Issues 页面 和 常见&难检反馈及问题列表 中搜索,确认了这一 Bug 未被提交过。
描述
以 1.19.4 举例,下载时改名为“1.19.4.1”,会提示“1.19.4.1 安装失败:未将对象引用设置到对象的实例。 → 版本 json 不规范(1.19.4.1) → 分析原版支持库文件(副加载器)失败 → 下载原版支持库文件失败 → 下载原版 1.19.4失败”
重现步骤
将将要下载的版本(存在的版本,以1.19.4举例)改名(改变成一个不存在的版本号,以1.19.4.1举例)就有概率触发
日志与附件
复现不了一点
~这啥MC下载把源代码都吐出来了啊.jpg~
吐出的json文件和报错
#于log1 行236~529
[21:18:24.840] 版本 json 可用性检查失败(D:\Launcher\JE\PCL\.minecraft\versions\1.19.4.1\):版本 json 不规范
(1.19.4.1)
→ 格式化 json 对象失败:{
"arguments": {
"game": [
"--username",
"${auth_player_name}",
"--version",
"${version_name}",
"--gameDir",
"${game_directory}",
"--assetsDir",
"${assets_root}",
"--assetIndex",
"${assets_index_name}",
"--uuid",
"${auth_uuid}",
"--accessToken",
"${auth_access_token}",
"--clientId",
"${clientid}",
"--xuid",
"${auth_xuid}",
"--userType",
"${user_type}",
"--versionType",
"${version_type}",
{
"rules": [
{
"action": "allow",
"features": {
"is_demo_user": true
}
}
],
"value": "--demo"
},
{
"rules": [
{
"action": "allow",
"features": {
"has_custom_resolution": true
}
}
],
"value": [
"--width",
"${resolution_width}",
"--height",
"${resolution_height}"
]
}
],
"jvm": [
{
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
],
"value": [
"-XstartOnFirstThread"
]
},
{
"rules": [
{
"action": "allow",
"os": {
"name": "windows"
}
}
],
"value": "-XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump"
},
{
"rules": [
{
"action": "allow",
"os": {
"name": "windows",
"version": "^10\\."
}
}
],
"value": [
"-Dos.name=Windows 10",
"-Dos.version=10.0"
]
},
{
"rules": [
{
"action": "allow",
"os": {
"arch": "x86"
}
}
],
"value": "-Xss1M"
},
"-Djava.library.path=${natives_directory}",
"-Dminecraft.launcher.brand=${launcher_name}",
"-Dminecraft.launcher.version=${launcher_version}",
"-cp",
"${classpath}"
]
},
"assetIndex": {
"id": "3",
"sha1": "748055d8685f1b0309ea77242ad5bff399972236",
"size": 410292,
"totalSize": 567062256,
"url": "https://piston-meta.mojang.com/v1/packages/748055d8685f1b0309ea77242ad5bff399972236/3.json"
},
"assets": "3",
"complianceLevel": 1,
"downloads": {
"client": {
"sha1": "958928a560c9167687bea0cefeb7375da1e552a8",
"size": 23476620,
"url": "https://piston-data.mojang.com/v1/objects/958928a560c9167687bea0cefeb7375da1e552a8/client.jar"
},
"client_mappings": {
"sha1": "f14771b764f943c154d3a6fcb47694477e328148",
"size": 7844191,
"url": "https://piston-data.mojang.com/v1/objects/f14771b764f943c154d3a6fcb47694477e328148/client.txt"
},
"server": {
"sha1": "8f3112a1049751cc472ec13e397eade5336ca7ae",
"size": 47515675,
"url": "https://piston-data.mojang.com/v1/objects/8f3112a1049751cc472ec13e397eade5336ca7ae/server.jar"
},
"server_mappings": {
"sha1": "73c8bb982e420b33aad9632b482608c5c33e2d13",
"size": 6043763,
"url": "https://piston-data.mojang.com/v1/objects/73c8bb982e420b33aad9632b482608c5c33e2d13/server.txt"
}
},
"id": "1.19.4",
"javaVersion": {
"component": "java-runtime-gamma",
"majorVersion": 17
},
"libraries": [
{
"downloads": {
"artifact": {
"path": "ca/weblite/java-objc-bridge/1.1/java-objc-bridge-1.1.jar",
"sha1": "1227f9e0666314f9de41477e3ec277e542ed7f7b",
"size": 1330045,
"url": "https://libraries.minecraft.net/ca/weblite/java-objc-bridge/1.1/java-objc-bridge-1.1.jar"
}
},
"name": "ca.weblite:java-objc-bridge:1.1",
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
]
},
{
"downloads": {
"artifact": {
"path": "com/github/oshi/oshi-core/6.2.2/oshi-core-6.2.2.jar",
"sha1": "54f5efc19bca95d709d9a37d19ffcbba3d21c1a6",
"size": 947865,
"url": "https://libraries.minecraft.net/com/github/oshi/oshi-core/6.2.2/oshi-core-6.2.2.jar"
}
},
"name": "com.github.oshi:oshi-core:6.2.2"
},
{
"downloads": {
"artifact": {
"path": "com/google/code/gson/gson/2.10/gson-2.10.jar",
"sha1": "dd9b193aef96e973d5a11ab13cd17430c2e4306b",
"size": 286235,
"url": "https://libraries.minecraft.net/com/google/code/gson/gson/2.10/gson-2.10.jar"
}
},
"name": "com.google.code.gson:gson:2.10"
},
{
"downloads": {
"artifact": {
"path": "com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar",
"sha1": "1dcf1de382a0bf95a3d8b0849546c88bac1292c9",
"size": 4617,
"url": "https://libraries.minecraft.net/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar"
}
},
"name": "com.google.guava:failureaccess:1.0.1"
},
{
"downloads": {
"artifact": {
"path": "com/google/guava/guava/31.1-jre/guava-31.1-jre.jar",
"sha1": "60458f877d055d0c9114d9e1a2efb737b4bc282c",
"size": 2959479,
"url": "https://libraries.minecraft.net/com/google/guava/guava/31.1-jre/guava-31.1-jre.jar"
}
},
"name": "com.google.guava:guava:31.1-jre"
},
{
"downloads": {
"artifact": {
"path": "com/ibm/icu/icu4j/71.1/icu4j-71.1.jar",
"sha1": "9e7d3304c23f9ba5cb71915f7cce23231a57a445",
"size": 13963762,
"url": "https://libraries.minecraft.net/com/ibm/icu/icu4j/71.1/icu4j-71.1.jar"
}
},
"name": "com.ibm.icu:icu4j:71.1"
},
{
"downloads": {
"artifact": {
"path": "com/mojang/authlib/3.18.38/authlib-3.18.38.jar",
"sha1": "016106b26bce62bda55bab42785b999e44d77ecb",
"size": 118354,
"url": "https://libraries.minecraft.net/com/mojang/authlib/3.18.38/authlib-3.18.38.jar"
}
},
"name": "com.mojang:authlib:3.18.38"
},
{
"downloads": {
"artifact": {
"path": "com/mojang/blocklist/1.0.10/blocklist-1.0.10.jar",
"sha1": "5c685c5ffa94c4cd39496c7184c1d122e515ecef",
"size": 964,
"url": "https://libraries.minecraft.net/com/mojang/blocklist/1.0.10/blocklist-1.0.10.jar"
}
},
"name": "com.mojang:blocklist:1.0.10"
},
{
"downloads": {
"artifact": {
"path": "com/mojang/brigadier/1.0.18/brigadier-1.0.18.jar",
"sha1": "c1ef1234282716483c92183f49bef47b1a89bfa9",
"size": 77116,
"url": "https://libraries.minecraft.net/com/mojang/brigadier/1.0.18/brigadier-1.0.18.jar"
}
},
"name": "com.mojang:brigadier:1.0.18"
},
{
"downloads": {
"artifact": {
"path": "com/mojang/datafixerupper/6.0.6/datafixerupper-6.0.6.jar",
"sha1": "e38e20946530646e866db03b2b192883d0ea6e84",
"size": 689986,
"url": "https://libraries.minecraft.net/com/mojang/datafixerupper/6.0.6/datafixerupper-6.0.6.jar"
}
},
"name": "com.mojang:datafixerupper:6.0.6"
},
{
"downloads": {
"artifact": {
"path": "com/mojang/logging/1.1.1/logging-1.1.1.jar",
"sha1": "832b8e6674a9b325a5175a3a6267dfaf34c85139",
"size": 15343,
"url": "https://libraries.minecraft.net/com/mojang/logging/1.1.1/logging-1.1.1.jar"
}
},
"name": "com.mojang:logging:1.1.1"
},
{
"downloads": {
在 PCL.ModMinecraft.McVersion.ReadRegistry()
在 PCL.ModMinecraft.McVersion.Check()
在 PCL.ModBase.GetJson(String Data)
在 PCL.ModMinecraft.McVersion.ReadRegistry()
[21:18:24.887] [Download] 3.json 2552#:开始,起始点 0,https://bmclapi2.bangbang93.com/v1/packages/748055d8685f1b0309ea77242ad5bff399972236/3.json
[21:18:24.918] 版本缺失主 jar 文件所必须的信息:版本 json 不规范(1.19.4.1)
→ 未将对象引用设置到对象的实例。
在 PCL.ModMinecraft.McVersion.ReadRegistry()
在 PCL.ModMinecraft.McVersion.InstantiateField()
在 PCL.ModDownload.DlClientJarGet(McVersion Version, Boolean ReturnNothingOnFileUseable)
在 PCL.ModMinecraft.McLibFix(McVersion Version, Boolean CoreJarOnly)
在 PCL.ModMinecraft.McVersion.ReadRegistry()
错误类型:System.NullReferenceException
[21:18:24.918] [Minecraft] 获取支持库列表:1.19.4.1
[21:18:24.918] 加载线程 分析原版支持库文件(副加载器) (32) 发生运行时错误:版本 json 不规范(1.19.4.1)
→ 未将对象引用设置到对象的实例。
在 PCL.ModMinecraft.McVersion.ReadRegistry()
在 PCL.ModMinecraft.McLibListGet(McVersion Version, Boolean IncludeVersionJar)
在 PCL.ModMinecraft.McLibFix(McVersion Version, Boolean CoreJarOnly)
在 PCL.ModDownloadLib._Closure$__6-0._Lambda$__1(LoaderTask`2 Task)
在 PCL.ModLoader.LoaderTask`2._Closure$__13-0._Lambda$__0()
在 PCL.ModMinecraft.McVersion.ReadRegistry()
错误类型:System.NullReferenceException
~这啥MC下载把源代码都吐出来了啊.jpg~
#于log1 行236~529 [21:18:24.840] 版本 json 可用性检查失败(D:\Launcher\JE\PCL.minecraft\versions\1.19.4.1\):版本 json 不规范(1.19.4.1) → 格式化 json 对象失败:{ "arguments": { "game": [ "--username", "${auth_player_name}", 此处省略一大堆字...
这是版本Json文件
看起来是下载到一半网络不好下载断了,导致出现一个下载了一半的json文件 应该和PCL2没关(
看起来是下载到一半网络不好下载断了,导致出现一个下载了一半的json文件
那json下载失败PCL没尝试重新下载或者直接删除吗...?
看起来是下载到一半网络不好下载断了,导致出现一个下载了一半的json文件
那json下载失败PCL没尝试重新下载或者直接删除吗...?
好像有人说过,龙猫拒绝了。然后PCL现在是失败就没有重试
既然当事人能出现这种情况想必大概率是有这个问题的(
很奇怪,没搞懂一点,需要复现
没成。。。。。我只卡出来这个,并且我发现无法展示版本只修了一半
这里有个 1.19.4-1 没加载出来
题外话:
就挺好奇为什么改了个名就成不常用版本了(
版本重复了吧。。。
#于log1 行213~226
[21:18:24.200] [Download] fabric-loader-0.15.10-1.19.4.json:已完成,剩余文件 2
[21:18:24.200] [Loader] 加载器 下载 Fabric 主文件 状态改变:Finished
[21:18:24.200] [Loader] 加载器 下载 Fabric 0.15.10 状态改变:Finished
[21:18:24.262] [Download] 1.19.4.1.json 2531#:出错,远程服务器返回错误: (404) 未找到。
在 PCL.ModNet.NetFile.Thread(NetThread Info)
错误类型:System.Net.WebException
[21:18:24.262] [Download] 1.19.4.1.json 2504#:下载源被禁用(0):https://bmclapi2.bangbang93.com/v1/packages/735207bdcf16cbc77b7f9f637e44e752288705a8/1.19.4.json
[21:18:24.262] 下载源 0 已被禁用:远程服务器返回错误: (404) 未找到。
在 System.Net.HttpWebRequest.GetResponse()
在 PCL.ModNet.NetFile.Thread(NetThread Info)
错误类型:System.Net.WebException
[21:18:24.278] [Download] 1.19.4.1.json 2537#:开始,起始点 0,https://piston-meta.mojang.com/v1/packages/735207bdcf16cbc77b7f9f637e44e752288705a8/1.19.4.json
[21:18:24.700] [Download] 1.19.4.1.json:文件大小 34407 B(33.6 K)
[21:18:24.731] [Download] 1.19.4.1.json:已完成,剩余文件 1
我这一步日志里是有一个合并文件的来着啊...
default.mp4 这个问题是我操作失误还是说是同类型bug?
不是 Bug,你下载了 client jar 还得下 client json 然后放到同目录
default.mp4 这个问题是我操作失误还是说是同类型bug?
不是 Bug,你下载了 client jar 还得下 client json 然后放到同目录
那我就删评论了(
复现成功 具体操作是直接改名(比如我是1.20.4改名为1.20.1,但是没录上屏),第二次下载就成功了,我把我的log发出来 总共尝试三次,只有第一次出现这个问题 Log5.txt Log1.txt Log2.txt Log3.txt Log4.txt
6
复现成功 具体操作是直接改名(比如我是1.20.4改名为1.20.1,但是没录上屏),第二次下载就成功了,我把我的log发出来 总共尝试三次,只有第一次出现这个问题 Log5.txt Log1.txt Log2.txt Log3.txt Log4.txt
报错出现在11:49:58.676处
由于有
格式化 json 对象失败 的报错,目前怀疑是 OpenBMCLAPI 中某个源提供的 json 文件损坏。
下一个 PCL 版本添加了对 OpenBMCLAPI 重定向的定位 log,可能需要等到下个版本再复现?
~这个问题最好的办法是把 93 哥喊来让他登录控制台对全部节点执行强制同步~
很奇怪,没搞懂一点,需要复现
啊?是我的问题吗?我试过了鸭? 附件:怀疑人生.jpg
等待下个版本更新后再确认
~有一种开幕雷击的美...~ 我刚刚闲的没事试着下载1.20.4改名1.20.1(依据“misividkoukou”的日志) 然后确实是报错了 于是我改了其他的版本名 没报错 然后我重新又搞了个1.20.4改名1.20.1去下载————
也不报错了?!?
这东西是概率性的?不像啊?还是这json下载不对也会缓存在本地防二次报错...?
我现在严重怀疑是单独的版本的问题了... 刚刚闲着没事更新下着玩1.20.5(没改名的)又给下崩了... 然后重新下载又不崩了...
附件注:行232至行575为第一次报错下载,行589后为第二次的正常下载(中间有多余代码是因为我曾切至“版本选择”界面查看另一个“意外”) Log1.txt
(小声:顺便问一下为啥我的PCL今天特别卡?
这个 bug 似乎好像也许和重命名版本无关,kong-que-dnf123 的 log 是同一个问题,但其中没有重命名过版本,甚至下载走的是官方源而非 BMCLAPI,甚至是概率触发的。 具体的情况是,不知道为什么,但 PCL 读取到的版本 json 确实只有半截…… 完全搞不懂为什么会这样,可能还需要更准确的复现方式,才能多一点线索 :/
考虑到一个月了也不知道咋回事暂时先关了,如果有其他人出现这个 bug 可以把日志发这里 (不过我说到底也需要一个相对稳定的复现方式才能修复它 Orz
其实我也不知道咋触发的,但确实有这个特性
(终于还是在56 天后 Closed 了吗
类似错误但是不确定是否和这个有关, another Log2.txt Log1.txt ,log1在556行,log2在570行,
是这个错误……
Log2
[17:25:14.808] [Minecraft] 传入的版本 json 文件内容(共 16384 字符,最多输出前 5000 字符):
{
"arguments": {
"game": [
"--username",
"${auth_player_name}",
"--version",
"${version_name}",
"--gameDir",
"${game_directory}",
"--assetsDir",
"${assets_root}",
"--assetIndex",
"${assets_index_name}",
"--uuid",
"${auth_uuid}",
"--accessToken",
"${auth_access_token}",
"--clientId",
"${clientid}",
"--xuid",
"${auth_xuid}",
"--userType",
"${user_type}",
"--versionType",
"${version_type}",
{
"rules": [
{
"action": "allow",
"features": {
"is_demo_user": true
}
}
],
"value": "--demo"
},
{
"rules": [
{
"action": "allow",
"features": {
"has_custom_resolution": true
}
}
],
"value": [
"--width",
"${resolution_width}",
"--height",
"${resolution_height}"
]
},
{
"rules": [
{
"action": "allow",
"features": {
"has_quick_plays_support": true
}
}
],
"value": [
"--quickPlayPath",
"${quickPlayPath}"
]
},
{
"rules": [
{
"action": "allow",
"features": {
"is_quick_play_singleplayer": true
}
}
],
"value": [
"--quickPlaySingleplayer",
"${quickPlaySingleplayer}"
]
},
{
"rules": [
{
"action": "allow",
"features": {
"is_quick_play_multiplayer": true
}
}
],
"value": [
"--quickPlayMultiplayer",
"${quickPlayMultiplayer}"
]
},
{
"rules": [
{
"action": "allow",
"features": {
"is_quick_play_realms": true
}
}
],
"value": [
"--quickPlayRealms",
"${quickPlayRealms}"
]
}
],
"jvm": [
{
"rules": [
{
"action": "allow",
"os": {
"name": "osx"
}
}
],
"value": [
"-XstartOnFirstThread"
]
},
{
"rules": [
{
"action": "allow",
"os": {
"name": "windows"
}
}
],
"value": "-XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump"
},
{
"rules": [
{
"action": "allow",
"os": {
"arch": "x86"
}
}
],
"value": "-Xss1M"
},
"-Djava.library.path=${natives_directory}",
"-Djna.tmpdir=${natives_directory}",
"-Dorg.lwjgl.system.SharedLibraryExtractPath=${natives_directory}",
"-Dio.netty.native.workdir=${natives_directory}",
"-Dminecraft.launcher.brand=${launcher_name}",
"-Dminecraft.launcher.version=${launcher_version}",
"-cp",
"${classpath}"
]
},
"assetIndex": {
"id": "5",
"sha1": "102454a05c5e871fe2370467fcca6f85b29c1b66",
"size": 411881,
"totalSize": 626087095,
"url": "https://piston-meta.mojang.com/v1/packages/102454a05c5e871fe2370467fcca6f85b29c1b66/5.json"
},
"assets": "5",
"complianceLevel": 1,
"downloads": {
"client": {
"sha1": "0c3ec587af28e5a785c0b4a7b8a30f9a8f78f838",
"size": 23028853,
"url": "https://piston-data.mojang.com/v1/objects/0c3ec587af28e5a785c0b4a7b8a30f9a8f78f838/client.jar"
},
"client_mappings": {
"sha1": "6c48521eed01fe2e8ecdadbd5ae348415f3c47da",
"size": 8001795,
"url": "https://piston-data.mojang.com/v1/objects/6c48521eed01fe2e8ecdadbd5ae348415f3c47da/client.txt"
},
"server": {
"sha1": "84194a2f286ef7c14ed7ce0090dba59902951553",
"size": 47791053,
"url": "https://piston-data.mojang.com/v1/objects/84194a2f286ef7c14ed7ce0090dba59902951553/server.jar"
},
"server_mappings": {
"sha1": "0b4dba049482496c507b2387a73a913230ebbd76",
"size": 6154195,
"url": "https://piston-data.mojang.com/v1/objects/0b4dba049482496c507b2387a73a913230ebbd76/server.txt"
}
},
"id": "1.20.1",
"javaVersion": {
"component": "java-runtime-gamma",
"majorVersion": 17
},
"libraries": [
{
"downloads": {
"artifact": {
"path": "ca/weblite/java-objc-bridge/1.1/java-objc-bridge-1.1.jar",
"sha1": "1227f9e0666314f9de41477e3ec277e542ed7f7b",
"size": 1330045,
[17:25:14.808] 版本 JSON 可用性检查失败(E:\.minecraft\versions\Better MC [FORGE] - BMC4\):版本 json 不规范(Better MC [FORGE] - BMC4)
→ 格式化 json 对象失败:{
"arguments": {
"game": [
"--username",
"${auth_player_name}",
"--vers...(全长 16384 个字符).../dsi/fastutil/8.5.9/fastutil-8.5.9.jar",
"sha1": "bb7ea75ecdb216654237830b3a96d87ad91f8cc
在 PCL.ModMinecraft.McVersion.ForgotWriter()
在 PCL.ModMinecraft.McVersion.Check()
在 PCL.ModBase.GetJson(String Data)
在 PCL.ModMinecraft.McVersion.ForgotWriter()
[17:25:14.812] 获取底层继承版本失败:索引和长度必须引用该字符串内的位置。
参数名: length
在 System.String.Substring(Int32 startIndex, Int32 length)
在 PCL.ModMinecraft.McVersion.ForgotWriter()
在 PCL.ModMinecraft.McVersion.VerifyFacade()
在 PCL.ModDownload.DlClientJarGet(McVersion Version, Boolean ReturnNothingOnFileUseable)
错误类型:System.ArgumentOutOfRangeException
[17:25:14.812] 版本缺失主 jar 文件所必须的信息:索引和长度必须引用该字符串内的位置。
参数名: length
在 System.String.Substring(Int32 startIndex, Int32 length)
在 PCL.ModMinecraft.McVersion.ForgotWriter()
在 PCL.ModDownload.DlClientJarGet(McVersion Version, Boolean ReturnNothingOnFileUseable)
在 PCL.ModMinecraft.McLibFix(McVersion Version, Boolean CoreJarOnly)
错误类型:System.ArgumentOutOfRangeException
~WC这个issue居然活了~
(居然在我第4天军训开了)
