android studio couldn‘t find so

cocos creator项目添加其他的库后用Android studio打包apk时出现couldn't find "cocos2djs.so" 最近用Android studio打包cocos creator项目时本来没什么问题,可是在添加一个别的库之后就出现了 couldn’t find “cocos2djs.so” 问题。 在网上搜了好多,但是都没有用,不过有一篇文章说可能有些依赖没有删除干净,可以把打包的apk解压看一下文件目录,按照文章中说的,我解压之后果然发现了一些不该存在的东西,如下图所示: 我在用cocos cre 阅读详情

android studio couldn't find so,Android APP出现这个错误的原因是,打包的时候没有把so文件打包入apk,而我的项目最用又用到了腾讯的

implementation 'com.tencent:mmkv:1.2.11'依赖库,而这个库又是用C++编写的,所以导致原来项目的so文件也没有打包入去了,最终经过排查把这个依赖库去掉就正常了,以后遇到类似的错误或许有个借鉴经验,以此记录在这里
安卓应用开发环境 本文会持续更新修改,主要记录在安卓应用开发中,遇到的一些问题和解决方案。 阅读详情

相关推荐

Ubuntu 20.04构建Android OLLVM混淆工具链实战指南

代码混淆是软件安全保护中的一项基础技术,其核心原理是在保持程序功能不变的前提下,通过插入冗余指令、打乱控制流、替换等价表达式等手段,增加代码的静态分析难度。在移动应用安全领域,Android Native层(C/C++代码)的保护尤为重要,因为核心算法和敏感逻辑通常封装在so库中,容易成为逆向工程的目标。基于LLVM编译器框架的OLLVM(Obfuscator-LLVM)项目,通过在编译阶段应用多种混淆Pass(如控制流扁平化、虚假控制流、指令替换),能有效提升so库的逆向分析门槛,为应用提供额外的安全加固

weixin_33827731的博客 455

Android Studio 加载 .so库出现couldn't find "*.so"

1.首先检查so文件存放位置,so可以放在app/libs里,也可以放在src/main/jniLibs里。如果放在app/libs里,需在app/build.gradle中添加如下代码sourceSets { main { jniLibs.srcDirs = ['libs'] } }参考:Android studio添加第三方库和so https://blog.c...

dodod2012的专栏 3378

《生成式AI引发的“认知污染”:社交媒体虚假信息的治理困局》

认知污染与生成式AI“认知污染”指信息环境被大量虚假、误导性内容所充斥,干扰公众对事实的认知判断。在社交媒体时代,虚假信息的生产和传播门槛大幅降低,呈现出工业化、规模化的趋势。近年兴起的生成式人工智能(Generative AI)技术,如大型语言模型(LLM)和深度伪造(deepfake),更是加剧了这一问题。AI可以自动生成看似真实的文本、图像、音视频,将虚假信息批量生产并快速散播到社交平台上。

那谁的博客 5913

Non-fatal Exception: java.lang.UnsatisfiedLinkError: dlopen failed: library “libmmkv.so“ not found

Non-fatal Exception: java.lang.UnsatisfiedLinkError: dlopen failed: library "libmmkv.so" not found 问题解决

xiaobaaidaba123的专栏 7739

统信UOS系统盘空间不足?5分钟搞定扩容的图形化解决方案

本文提供统信UOS系统盘空间不足的图形化扩容解决方案,使用GParted分区编辑器在不丢失数据的情况下快速完成扩容。详细步骤包括准备工作、空间调整和执行验证,适合技术用户快速解决问题。

d6e7f8的博客 956

机器学习 -- 信用卡评分模型 -- 互联网金融风控

互联网金融主要分为资金类和资产类。资金类主要是理财产品,吸储,主要指标是用户转化、留存和复投,重在客户运营。资产类主要是贷款,包括消费金融和现金贷,小额贷款属于此类,主要目的是用户转化,还款和风险控制,信用卡评分模型就属于风险控制。 信用评分作用是对贷款申请人(信用卡申请人)做风险评估分值的方法。 信用卡评分是以大量数据的统计结果为基础,根据客户提供的资料和历史数据对客户的信用进行评估,评分卡模型...

XiaoMaEr66的博客 2420

couldn't find "libxxxx.so"的错误解决办法

引用了一些第三方的sdk的so库之后通常都会遇到这样的错误,("nativeLibraryDirectories=[/data/app/com.lukouapp-1/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libxxxx.so")因为手机的机型不同,so库的开发公司也各不同,有的so库兼容各种机型,兼容android ap...

远行的博客 4万+

UART全功能测试指南:环路/DMA/RS485/硬件流控实战

UART(通用异步收发器)是嵌入式系统中最基础的串行通信接口,其核心原理基于起始位、数据位、校验位与停止位的异步帧结构,依赖精确的波特率时钟同步与采样重建机制。在工业与物联网场景中,UART不仅需保障基本通信可靠性,更需支持DMA卸载、RS485半双工自动方向控制、RTS/CTS硬件流控等进阶能力,以提升实时性、抗干扰性与系统资源效率。典型应用涵盖调试日志输出、传感器数据采集、Modbus RTU总线通信及固件空中升级。本指南聚焦UART外设测试实践,覆盖环路自检、DMA吞吐验证、RS485时序对齐、硬件流

weixin_42599908的博客 133

Android Studio添加so文件后,运行提示找不到so

插个眼 转载:https://blog.csdn.net/lin_dianwei/article/details/54946393

qq_41103091的博客 827

Windows Server远程桌面断开后,PyWinAuto/按键精灵脚本失效?试试这个‘会话保持’的终极配置

本文深入解析Windows Server远程桌面断开后导致PyWinAuto/按键精灵脚本失效的问题,提供会话保持的终极配置方案。通过转换到控制台会话(console模式)和调整组策略,确保自动化程序在断开连接后持续稳定运行,适用于Windows Server各版本。

weixin_28738165的博客 227

Win11系统下Notepad++右键菜单失效?3种修复方法实测有效(附注册表备份指南)

本文针对Windows 11系统中Notepad++右键菜单失效的常见问题,提供了三种经过实测有效的修复方法。核心解决方案包括使用官方NppShell.dll重新注册、手动修复注册表项以及系统级问题排查,并详细说明了操作前的注册表备份指南,确保修复过程安全可靠。

m2n3b4v5c6的博客 328

couldn‘t find “libmmkv.so“ android8.1.0 Nexus 5X

研究了很久,一方面是因为mmkv团队也已经不管这个事情,从他的issue来看,每次有人提到这个,他要么就不予理睬,给出这个并非库维护者需要干的事情,要么就说你去找google。抛开那种确实是集成库的开发者的问题之后,事实99%都能用的情况后,那么,还存在于某个机型,比如我这里也遇到的android8.1.0 Nexus 5X,也会存在找不到库的情况。相当于死马当活马医,传统的代码crash了,抓住,使用relinker的方案再行load库,大不了再crash一次。后续我会继续跟踪和复现,再行修改。

jzlhll123的专栏 2264

【论文复现】Applied Intelligence 2025:Auto-PU正例无标签学习的自动化实现与GPT-5.4辅助编程实战

正例-无标签学习(Positive-Unlabelled Learning, PU Learning)是机器学习领域处理"只有正例标签,负例完全未知"场景的重要技术。本文基于2025年发表于Applied Intelligence的最新研究成果,详细阐述如何从零复现Auto-PU框架(包含GA-Auto-PU、BO-Auto-PU、EBO-Auto-PU三种优化器)。

nmdbbzcl的博客 1389

Android studio 讯飞集成 “组件未安装.(错误码:21002)”,couldn‘t find “libmsc.so“

couldn’t find “libmsc.so” E/MscSpeechLog: loadLibrary msc error:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.kodulf.mywakeupdemo-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib.

afufufufu的博客 1859

【Python机器学习】零基础掌握TweedieRegressor广义线性回归模型

本次文章主要介绍了如何使用Tweedie回归模型预测电动汽车的实际续航里程。基于车速、气温和驾驶习惯等多种因素,模型能够准确地预测出电动汽车的续航里程,从而为生产商和消费者提供有用的信息。优点总结,Tweedie回归模型在处理具有多元性和高度散布的数据方面表现出色,特别适用于需要考虑多种影响因素的预测任务。优点名称对应描述说明多元性强可以同时处理多种类型和维度的数据高度可定制允许用户自定义损失函数和正则项对异常值鲁棒能够较好地处理数据中的异常值易于解释参数和预测结果都相对容易解释。

Mr数据杨 1006

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

记录一次Android studio报错的解决过程,一波三折:java.lang.UnsatisfiedLinkError:xxx couldn‘t find “xxx.so“

这时候想起一个问题,jar模块只支持被引入java字节码文件,不支持被引入Android的其它文件,例如:.a .so文件。jniLibs目录下没有包含对应CPU架构的子目录。经过问题排查定位,打开apk文件,发现里面没有对应的.so文件,也就是说没有把目标动态库打包到apk文件中。记录一个Android开发过程中构建项目中很常见,也很容易忽略的低级错误。留意运行机型的cpu是什么,copy对应的ABI的库目标文件。把jar模块修改为aar模块。再次重新构建,运行ok。

Shujie 388

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

couldn‘t find “libZBarDecoder.so“的解决方案(关联路径,配置默认参数)

最近在写一个关于二维码的扫描项目 在使用到zbar开源项目时出现了couldn’t find "libZBarDecoder.so"的问题 解决方法如下 首先是指定so文件目录,然后是指定默认的配置,我测试的时候是两个都写下去才能成功打开扫描二维码的窗口 android { sourceSets { main { jniLibs.srcDirs = ['libs'] } } .... .... d

weixin_44822939的博客 1128

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

couldn‘t find DSO to load: libfbjni.so result: 0

问题:新搭React-native项目0.63.2版本,第一次安卓真机运行安装完成后闪退,Android studio内报错:couldn’t find DSO to load: libfbjni.so result: 0 解决:修改 android/app/build.gradle 文件,添加以下代码 defaultConfig { ··· ndk { abiFilters "armeabi-v7a","x86" } } packagingOption..

张瑞东的博客 2007

CocosCreator原生开发 dalvik.system.PathClassLoader[DexPathList[[zip file couldn‘t find “libcocos2djs.so“

android studio 运行报错 dalvik.system.PathClassLoader[DexPathList[[zip file … couldn’t find “libcocos2djs.so”. 问题记录 这个问题解决方案是在 app下面的build.gradle文件里面android/defaultConfig下面设置支持的SO库架构。 例如我cocos安卓打包设置支持的是’armeabi-v7a’。此时我只需在如下位置添加 ndk { abiFilters ‘armeabi-v7a’

qq_41543748的博客 879

2024-09-04升级问题记录:调试时出现couldn‘t find *.so 库

看提示是dalvik虚拟机在lib64位置无法找到"libsqlcipher.so" 的库文件导致的。将安装包解压后发现确实找不到。可是生成的apk本身就只支持32位。将支持各个指令集的so库全部打包到apk中。如支持你的设备架构,例如 arm64。

sig321的专栏 519

Android开发中快速定位.so文件来源的完整指南

在Android应用开发中,动态链接库(.so文件)作为C/C++代码编译后的产物,承载着核心计算逻辑,尤其在涉及NDK、音视频处理、图像识别等高性能场景时至关重要。其工作原理是通过Java Native Interface(JNI)实现Java/Kotlin代码与本地代码的交互,从而突破虚拟机性能限制,直接调用底层系统资源。这种技术价值在于能够显著提升计算密集型任务的执行效率,并复用成熟的C/C++生态库。在实际工程实践中,.so文件的管理常面临依赖来源模糊、版本冲突、ABI兼容性等挑战,特别是在引入第三

weixin_30268071的博客 326

Android集成Unity时SO库加载失败:Gradle配置与解决方案详解

动态链接库(SO库)是Android应用实现高性能计算和跨语言调用的核心技术组件,其加载机制直接影响应用的稳定性和性能。在Android开发中,Gradle构建系统负责将SO库打包到APK的正确位置,确保运行时能被系统加载器正确识别。当进行混合开发,例如将Unity引擎作为库模块集成到Android主应用时,SO库的加载路径和打包流程容易出现错位,导致UnsatisfiedLinkError等运行时崩溃。本文聚焦于Unity与Android混合开发场景,通过剖析Gradle的sourceSets配置、ABI

weixin_34245082的博客 362

Frida对抗libmsaoaidsec.so反调试:从原理到实战绕过

在移动安全领域,动态分析是理解应用行为的关键技术,而反调试机制则是应用对抗分析的核心防线。其原理在于通过检测调试器特征、进程状态或运行时环境异常来中断分析过程,旨在保护核心逻辑与数据安全。对于安全研究员和逆向工程师而言,绕过反调试具有重要的技术价值,是进行漏洞挖掘、协议分析或安全评估的前提。常见的应用场景包括分析电商、金融等涉及强安全组件的App。本文聚焦于广泛使用的**Frida**动态插桩框架,深入剖析其面临的典型挑战——针对**libmsaoaidsec.so**这一常见Native层反调试库的检测机

weixin_34224941的博客 447

Android的JNI【实战教程】5⃣️---Android Studio 2.2 以上 NDK开发

今天介绍一下Android Studio 2.2 下 NDK开发 ,那叫一个顺溜—-纵享丝滑! 虽然现在AS 2.2 之后,jni开发配置相当方便,但是还是建议大家从我的第一篇文章看起,从基础知识入手,并且要了解之前是如何配置NDK工程的,这是一个循序渐进的过程。今天主要介绍一下如何分别在新工程和老工程中创建最新NDK项目。新工程创建Ndk Project创建 创建时候勾选 include

李彬博客专栏 3348

Android studio Didn‘t find class “com.xx.MainActivity“ on path: DexPathList[[zip……

由于没有使用MultDex,所以不是相关原因; 没有引入任何.so文件,所以不是相关原因; Android Studio 3.5没有找到instant run设置; 删除.gradle和.idea文件夹,clean project没有效果; 代码在其他手机上运行正常,所以不是代码原因; 那么就只有gradle的原因了。 将JDK从android studio jre修改为 自己的 jdk,未解决; 最后的解决办法是: defaultConfig { applicationId "co..

qq_22966813的博客 665

Android Studio-Didn‘t find class XXX on path: DexPathList [zip file “/data/app/packagename/base.apk]

错误描述错误表现在:安装成功后,点开应用就 Crash 。就是之前正常的项目,某一天就突然这样的,我也很是无语。错误提示如下: Caused by: java.lang.ClassNotFoundException: Didn't find class &amp;quot;com.blueware.agent.android.instrumentation.GsonInstrumentation&amp;quot; on path:

浅浅同学的开发笔记 5万+
上一篇: PostgreSQL
下一篇: android studio java.lang.noclassdeffounderror javax/annotation/generated android
JianfeiMa
博客等级 码龄10年 61粉丝 131原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值