安卓app/framework开发中meta-data数据剖析作用及实战

背景:

在做安卓app开发时候,特别是经常接入人家某些公司sdk时候经常会要求在AndroidManifest.xml中使用到一个标签meta-data,
相信大家如果不是之前没有深入接触过meta-data相关知识时候可能还是会比较陌生。
那么本文就来带大家学习一下meta-data真实作用和相关实战。

官方解释:

参考链接:
https://developer.android.com/guide/topics/manifest/meta-data-element

https://developer.android.google.cn/guide/topics/manifest/meta-data-element?hl=zh-cn
在这里插入图片描述
辅助解释

meta-data一般在AndroidManifest使用语法:

<meta-data android:name="string"
           android:resource="resource specification"
           android:value="string" />

这个meta-data标签可以包含在下面几个标签

<activity>
<activity-alias>
<application>
<provider>
<receiver>
<service> 

meta-data的作用说明:
meta-data(元数据),主要用来定义一些组件相关的额外附加配置键值。AndroidManifests.xml下的meta-data是对外界开放的,是向系统注册的信息,系统及外界是可以通过相关API获取到meta-data的信息。因为AndroidManifest.xml组件相关的标签都是固定,不允许额外添加针对这个组件相关的标签和数据,所以这个时候如果有想要针对某一组件设置额外的数据,那么就需要使用到meta-data标签数据。

相关案例:
屏幕适配

< meta-data
      android:name="android.max_aspect"
      android:value="2.1" />

设置桌面快捷方式:

< meta-data
       android:name="android.app.shortcuts"
       android:resource="@xml/shortcuts" />

还有接入一些地图sdk情况

< meta-data
      android:name="com.amap.api.v2.apikey"
      android:value="oooooooooooooxxxxxxxxxxxx" />

那么接下来实战展示一下使用meta-data

实战开发使用meta-data

第1步:
AndroidManifest中定义相关meta-data

在这里插入图片描述

第2步:
程序中读取Manifest中配置meta-data


    String getActivityMetaData() {
        String value ="";
        try {
            ActivityInfo info = getPackageManager().getActivityInfo(this.getComponentName(),PackageManager.GET_META_DATA);
            value = info.metaData.getString("com.test.anrdemo");
        }catch (Exception e) {
            e.printStackTrace();
        }
        return value;
    }

    String getApplicationMetaData() {
        String value ="";
        try {
            ApplicationInfo info = getPackageManager().getApplicationInfo(getPackageName(),PackageManager.GET_META_DATA);
            value = info.metaData.getString("com.test.anrdemo");
        }catch (Exception e) {
            e.printStackTrace();
        }
        return value;
    }

然后通过TextView进行展示

otherDisplayWindow.setText(" activity meta value = " +getActivityMetaData() + 
" \n application meta value = "+getApplicationMetaData());

运行结果:
在这里插入图片描述

这里只展示出来了自己应用获取自己配置的meta-data,其实还有更多场景是system_server也可以使用和读取
系统端获取meta-data情况:
获取meta-data代码修改:
frameworks/base/services/core/java/com/android/server/wm/ActivityStarter.java
中的startActivityUnchecked加入如下代码

        ActivityInfo activityInfo = mService.getPackageManagerInternalLocked().getActivityInfo(r.mActivityComponent,PackageManager.GET_META_DATA,0,0);
        android.util.Log.i("lsm88888888","getActivityInfo "+activityInfo + " meta-data "+activityInfo.metaData);

结果打印如下:
在这里插入图片描述

总结:

meta-data其实无论在普通app开发还是系统开发过程中都是非常重要的,可以在app的AndroidManifest中配置相关的自定义数据,然后在代码中可以获取到AndroidManifest配置的meta-data数据,不仅仅app进程自己可以获取到这个数据,其他进程也可以获取到这个meta-data数据,这样对于系统识别一些Activity特性时候就提供了重要的依据。

文章参考来源:https://mp.weixin.qq.com/s/Qv8zjgQ0CkalKmvi8tMGaw
更多framework相关技术干货,请关注下面“千里马学框架”

--------- beginning of system 01-01 13:16:13.473 3125 3125 I PinnerService: Pinner - skip pinning camera app 01-01 13:16:13.474 3125 3125 I PinnerService: Starting PinnerService 01-01 13:16:13.483 3125 3191 D PinnerService: pin file: /system/framework/framework.jar use-pinlist: false 01-01 13:16:13.483 3125 3191 D PinnerService: pinning at 0 49901568 bytes of /system/framework/framework.jar 01-01 13:16:13.544 3125 3191 D PinnerService: pin file: /system/framework/arm64/boot-framework.oat use-pinlist: false 01-01 13:16:13.544 3125 3191 D PinnerService: pinning at 0 12029952 bytes of /system/framework/arm64/boot-framework.oat 01-01 13:16:13.557 3125 3191 D PinnerService: pin file: /system/framework/arm64/boot-framework.vdex use-pinlist: false 01-01 13:16:13.557 3125 3191 D PinnerService: pinning at 0 749568 bytes of /system/framework/arm64/boot-framework.vdex 01-01 13:16:13.557 3125 3191 D PinnerService: pin file: /system/framework/services.jar use-pinlist: false 01-01 13:16:13.558 3125 3191 D PinnerService: pinning at 0 39833600 bytes of /system/framework/services.jar 01-01 13:16:13.636 3125 3191 D PinnerService: pin file: /system/framework/oat/arm64/services.vdex use-pinlist: false 01-01 13:16:13.637 3125 3191 D PinnerService: pinning at 0 454656 bytes of /system/framework/oat/arm64/services.vdex 01-01 13:16:13.637 3125 3191 D PinnerService: pin file: /system/framework/arm64/boot-QPerformance.oat use-pinlist: false 01-01 13:16:13.637 3125 3191 D PinnerService: pinning at 0 28672 bytes of /system/framework/arm64/boot-QPerformance.oat 01-01 13:16:13.637 3125 3191 D PinnerService: pin file: /system/framework/arm64/boot-UxPerformance.oat use-pinlist: false 01-01 13:16:13.637 3125 3191 D PinnerService: pinning at 0 20480 bytes of /system/framework/arm64/boot-UxPerformance.oat 01-01 13:16:13.637 3125 3191 D PinnerService: pin file: /apex/com.android.art/javalib/bouncycastle.jar use-pinlist: false 01-01 13:16:13.637 3125 3191 D PinnerService: pinning at 0 1036288 bytes of /apex/com.android.art/javalib/bouncycastle.jar 01-01 13:16:13.640 3125 3191 D PinnerService: pin file: /system/framework/arm64/boot-bouncycastle.oat use-pinlist: false 01-01 13:16:13.640 3125 3191 D PinnerService: pinning at 0 196608 bytes of /system/framework/arm64/boot-bouncycastle.oat 01-01 13:16:13.640 3125 3191 D PinnerService: pin file: /system/framework/arm64/boot-bouncycastle.vdex use-pinlist: false 01-01 13:16:13.641 3125 3191 D PinnerService: pinning at 0 24576 bytes of /system/framework/arm64/boot-bouncycastle.vdex 01-01 13:16:13.641 3125 3191 D PinnerService: pin file: /apex/com.android.art/javalib/core-libart.jar use-pinlist: false 01-01 13:16:13.641 3125 3191 D PinnerService: pinning at 0 626688 bytes of /apex/com.android.art/javalib/core-libart.jar 01-01 13:16:13.641 3125 3191 D PinnerService: pin file: /system/framework/arm64/boot-core-libart.oat use-pinlist: false 01-01 13:16:13.641 3125 3191 D PinnerService: pinning at 0 393216 bytes of /system/framework/arm64/boot-core-libart.oat 01-01 13:16:13.641 3125 3191 D PinnerService: pin file: /system/framework/arm64/boot-core-libart.vdex use-pinlist: false 01-01 13:16:13.641 3125 3191 D PinnerService: pinning at 0 16384 bytes of /system/framework/arm64/boot-core-libart.vdex 01-01 13:16:13.648 3125 3191 D PinnerService: pin file: /system_ext/priv-app/OplusLauncher/OplusLauncher.apk use-pinlist: true 01-01 13:16:13.655 3125 3191 W PinnerService: Could not find pinlist.meta for "/system_ext/priv-app/OplusLauncher/OplusLauncher.apk": pinning as blob 01-01 13:16:13.655 3125 3191 D PinnerService: pinning at 0 6291456 bytes of /system_ext/priv-app/OplusLauncher/OplusLauncher.apk 01-01 13:16:13.752 3125 3191 D PinnerService: pin file: /system_ext/priv-app/OplusLauncher/oat/arm64/OplusLauncher.vdex use-pinlist: false 01-01 13:16:13.753 3125 3191 D PinnerService: pinning at 0 1105920 bytes of /system_ext/priv-app/OplusLauncher/oat/arm64/OplusLauncher.vdex 01-01 13:16:13.766 3125 3191 I PinnerService: Pinned /system_ext/priv-app/OplusLauncher/OplusLauncher.apk 为什么就是没pin到odex文件
最新发布
11-11
2025-06-25 16:21:10,826 - INFO - ============================================================ 2025-06-25 16:21:10,826 - INFO - ============================================================ 2025-06-25 16:21:10,826 - INFO - ============================================================ 2025-06-25 16:21:10,834 - INFO - 启动高级访问控制绕过系统 --- Logging error --- Traceback (most recent call last): File "/var/containers/Bundle/Application/F478C67C-EC3B-4CC7-AF32-6AA2047D0745/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/logging/__init__.py", line 1104, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'ascii' codec can't encode characters in position 33-44: ordinal not in range(128) Call stack: File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 464, in <module> main() File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 408, in main log_info("启动高级访问控制绕过系统") File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 67, in log_info logger.info(safe_str(message)) Message: '启动高级访问控制绕过系统' Arguments: () 2025-06-25 16:21:10,834 - INFO - 启动高级访问控制绕过系统 2025-06-25 16:21:10,834 - INFO - 启动高级访问控制绕过系统 2025-06-25 16:21:10,835 - INFO - 目标: http://nzaj5zn2dx.355328web33.top.355328.com/baidu/read.php?tid=1086 --- Logging error --- Traceback (most recent call last): File "/var/containers/Bundle/Application/F478C67C-EC3B-4CC7-AF32-6AA2047D0745/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/logging/__init__.py", line 1104, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'ascii' codec can't encode characters in position 33-34: ordinal not in range(128) Call stack: File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 464, in <module> main() File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 409, in main log_info(f"目标: {TARGET_URL}") File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 67, in log_info logger.info(safe_str(message)) Message: '目标: http://nzaj5zn2dx.355328web33.top.355328.com/baidu/read.php?tid=1086' Arguments: () 2025-06-25 16:21:10,835 - INFO - 目标: http://nzaj5zn2dx.355328web33.top.355328.com/baidu/read.php?tid=1086 2025-06-25 16:21:10,835 - INFO - 目标: http://nzaj5zn2dx.355328web33.top.355328.com/baidu/read.php?tid=1086 2025-06-25 16:21:10,842 - INFO - 用户: a3280844548 --- Logging error --- Traceback (most recent call last): File "/var/containers/Bundle/Application/F478C67C-EC3B-4CC7-AF32-6AA2047D0745/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/logging/__init__.py", line 1104, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'ascii' codec can't encode characters in position 33-34: ordinal not in range(128) Call stack: File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 464, in <module> main() File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 410, in main log_info(f"用户: {USERNAME}") File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 67, in log_info logger.info(safe_str(message)) Message: '用户: a3280844548' Arguments: () 2025-06-25 16:21:10,842 - INFO - 用户: a3280844548 2025-06-25 16:21:10,842 - INFO - 用户: a3280844548 2025-06-25 16:21:10,844 - INFO - 时间: 2025-06-25 16:21:10 --- Logging error --- Traceback (most recent call last): File "/var/containers/Bundle/Application/F478C67C-EC3B-4CC7-AF32-6AA2047D0745/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/logging/__init__.py", line 1104, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'ascii' codec can't encode characters in position 33-34: ordinal not in range(128) Call stack: File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 464, in <module> main() File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 411, in main log_info(f"时间: {time.strftime('%Y-%m-%d %H:%M:%S')}") File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 67, in log_info logger.info(safe_str(message)) Message: '时间: 2025-06-25 16:21:10' Arguments: () 2025-06-25 16:21:10,844 - INFO - 时间: 2025-06-25 16:21:10 2025-06-25 16:21:10,844 - INFO - 时间: 2025-06-25 16:21:10 2025-06-25 16:21:10,846 - INFO - ============================================================ 2025-06-25 16:21:10,846 - INFO - ============================================================ 2025-06-25 16:21:10,846 - INFO - ============================================================ 2025-06-25 16:21:10,846 - INFO - 执行登录协议... --- Logging error --- Traceback (most recent call last): File "/var/containers/Bundle/Application/F478C67C-EC3B-4CC7-AF32-6AA2047D0745/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/logging/__init__.py", line 1104, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'ascii' codec can't encode characters in position 33-38: ordinal not in range(128) Call stack: File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 464, in <module> main() File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 419, in main login_success = site_login(session) File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 141, in site_login log_info("执行登录协议...") File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 67, in log_info logger.info(safe_str(message)) Message: '执行登录协议...' Arguments: () 2025-06-25 16:21:10,846 - INFO - 执行登录协议... 2025-06-25 16:21:10,846 - INFO - 执行登录协议... 2025-06-25 16:21:10,848 - INFO - 获取CSRF令牌... --- Logging error --- Traceback (most recent call last): File "/var/containers/Bundle/Application/F478C67C-EC3B-4CC7-AF32-6AA2047D0745/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/logging/__init__.py", line 1104, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'ascii' codec can't encode characters in position 33-34: ordinal not in range(128) Call stack: File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 464, in <module> main() File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 419, in main login_success = site_login(session) File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 144, in site_login csrf_token = get_csrf_token(session, LOGIN_URL) File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 92, in get_csrf_token log_info("获取CSRF令牌...") File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 67, in log_info logger.info(safe_str(message)) Message: '获取CSRF令牌...' Arguments: () 2025-06-25 16:21:10,848 - INFO - 获取CSRF令牌... 2025-06-25 16:21:10,848 - INFO - 获取CSRF令牌... 2025-06-25 16:21:11,472 - WARNING - 无法获取CSRF令牌,使用动态生成 --- Logging error --- Traceback (most recent call last): File "/var/containers/Bundle/Application/F478C67C-EC3B-4CC7-AF32-6AA2047D0745/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/logging/__init__.py", line 1104, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'ascii' codec can't encode characters in position 36-39: ordinal not in range(128) Call stack: File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 464, in <module> main() File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 419, in main login_success = site_login(session) File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 144, in site_login csrf_token = get_csrf_token(session, LOGIN_URL) File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 132, in get_csrf_token log_warning("无法获取CSRF令牌,使用动态生成") File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 70, in log_warning logger.warning(safe_str(message)) Message: '无法获取CSRF令牌,使用动态生成' Arguments: () 2025-06-25 16:21:11,472 - WARNING - 无法获取CSRF令牌,使用动态生成 2025-06-25 16:21:11,472 - WARNING - 无法获取CSRF令牌,使用动态生成 2025-06-25 16:21:13,630 - WARNING - 登录状态验证失败 --- Logging error --- Traceback (most recent call last): File "/var/containers/Bundle/Application/F478C67C-EC3B-4CC7-AF32-6AA2047D0745/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/logging/__init__.py", line 1104, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'ascii' codec can't encode characters in position 36-43: ordinal not in range(128) Call stack: File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 464, in <module> main() File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 419, in main login_success = site_login(session) File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 194, in site_login log_warning("登录状态验证失败") File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 70, in log_warning logger.warning(safe_str(message)) Message: '登录状态验证失败' Arguments: () 2025-06-25 16:21:13,630 - WARNING - 登录状态验证失败 2025-06-25 16:21:13,630 - WARNING - 登录状态验证失败 2025-06-25 16:21:13,638 - WARNING - 登录失败,尝试继续执行 --- Logging error --- Traceback (most recent call last): File "/var/containers/Bundle/Application/F478C67C-EC3B-4CC7-AF32-6AA2047D0745/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/logging/__init__.py", line 1104, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'ascii' codec can't encode characters in position 36-39: ordinal not in range(128) Call stack: File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 464, in <module> main() File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 422, in main log_warning("登录失败,尝试继续执行") File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 70, in log_warning logger.warning(safe_str(message)) Message: '登录失败,尝试继续执行' Arguments: () 2025-06-25 16:21:13,638 - WARNING - 登录失败,尝试继续执行 2025-06-25 16:21:13,638 - WARNING - 登录失败,尝试继续执行 2025-06-25 16:21:13,665 - INFO - 获取购买参数... --- Logging error --- Traceback (most recent call last): File "/var/containers/Bundle/Application/F478C67C-EC3B-4CC7-AF32-6AA2047D0745/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/logging/__init__.py", line 1104, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'ascii' codec can't encode characters in position 33-38: ordinal not in range(128) Call stack: File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 464, in <module> main() File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 425, in main purchase_url = get_purchase_params(session, TARGET_URL) File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 207, in get_purchase_params log_info("获取购买参数...") File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 67, in log_info logger.info(safe_str(message)) Message: '获取购买参数...' Arguments: () 2025-06-25 16:21:13,665 - INFO - 获取购买参数... 2025-06-25 16:21:13,665 - INFO - 获取购买参数... 2025-06-25 16:21:17,002 - INFO - 从文本提取购买链接: http://nzaj5zn2dx.355328web33.top.355328.com/baidu/job.php?action=buytopic&tid=1086&pid=tpc&verify=8e5e04ff --- Logging error --- Traceback (most recent call last): File "/var/containers/Bundle/Application/F478C67C-EC3B-4CC7-AF32-6AA2047D0745/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/logging/__init__.py", line 1104, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'ascii' codec can't encode characters in position 33-41: ordinal not in range(128) Call stack: File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 464, in <module> main() File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 425, in main purchase_url = get_purchase_params(session, TARGET_URL) File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 249, in get_purchase_params log_info(f"从文本提取购买链接: {full_url}") File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 67, in log_info logger.info(safe_str(message)) Message: '从文本提取购买链接: http://nzaj5zn2dx.355328web33.top.355328.com/baidu/job.php?action=buytopic&tid=1086&pid=tpc&verify=8e5e04ff' Arguments: () 2025-06-25 16:21:17,002 - INFO - 从文本提取购买链接: http://nzaj5zn2dx.355328web33.top.355328.com/baidu/job.php?action=buytopic&tid=1086&pid=tpc&verify=8e5e04ff 2025-06-25 16:21:17,002 - INFO - 从文本提取购买链接: http://nzaj5zn2dx.355328web33.top.355328.com/baidu/job.php?action=buytopic&tid=1086&pid=tpc&verify=8e5e04ff 2025-06-25 16:21:17,005 - INFO - 尝试购买内容: http://nzaj5zn2dx.355328web33.top.355328.com/baidu/job.php?action=buytopic&tid=1086&pid=tpc&verify=8e5e04ff --- Logging error --- Traceback (most recent call last): File "/var/containers/Bundle/Application/F478C67C-EC3B-4CC7-AF32-6AA2047D0745/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/logging/__init__.py", line 1104, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'ascii' codec can't encode characters in position 33-38: ordinal not in range(128) Call stack: File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 464, in <module> main() File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 429, in main purchase_success = purchase_content(session, purchase_url) File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 266, in purchase_content log_info(f"尝试购买内容: {purchase_url}") File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 67, in log_info logger.info(safe_str(message)) Message: '尝试购买内容: http://nzaj5zn2dx.355328web33.top.355328.com/baidu/job.php?action=buytopic&tid=1086&pid=tpc&verify=8e5e04ff' Arguments: () 2025-06-25 16:21:17,005 - INFO - 尝试购买内容: http://nzaj5zn2dx.355328web33.top.355328.com/baidu/job.php?action=buytopic&tid=1086&pid=tpc&verify=8e5e04ff 2025-06-25 16:21:17,005 - INFO - 尝试购买内容: http://nzaj5zn2dx.355328web33.top.355328.com/baidu/job.php?action=buytopic&tid=1086&pid=tpc&verify=8e5e04ff 2025-06-25 16:21:21,946 - WARNING - 购买结果未知,请检查响应文件 --- Logging error --- Traceback (most recent call last): File "/var/containers/Bundle/Application/F478C67C-EC3B-4CC7-AF32-6AA2047D0745/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/logging/__init__.py", line 1104, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'ascii' codec can't encode characters in position 36-41: ordinal not in range(128) Call stack: File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 464, in <module> main() File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 429, in main purchase_success = purchase_content(session, purchase_url) File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 334, in purchase_content log_warning("购买结果未知,请检查响应文件") File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 70, in log_warning logger.warning(safe_str(message)) Message: '购买结果未知,请检查响应文件' Arguments: () 2025-06-25 16:21:21,946 - WARNING - 购买结果未知,请检查响应文件 2025-06-25 16:21:21,946 - WARNING - 购买结果未知,请检查响应文件 2025-06-25 16:21:21,950 - WARNING - 响应片段: <!-- --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta htt... --- Logging error --- Traceback (most recent call last): File "/var/containers/Bundle/Application/F478C67C-EC3B-4CC7-AF32-6AA2047D0745/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/logging/__init__.py", line 1104, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'ascii' codec can't encode characters in position 36-39: ordinal not in range(128) Call stack: File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 464, in <module> main() File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 429, in main purchase_success = purchase_content(session, purchase_url) File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 337, in purchase_content log_warning(f"响应片段: {snippet}") File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 70, in log_warning logger.warning(safe_str(message)) Message: '响应片段: <!--\r\n-->\r\r\n<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r\r\n<html xmlns="http://www.w3.org/1999/xhtml">\r\r\n<head>\r\r\n<meta htt...' Arguments: () 2025-06-25 16:21:21,950 - WARNING - 响应片段: <!-- --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta htt... 2025-06-25 16:21:21,950 - WARNING - 响应片段: <!-- --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta htt... 2025-06-25 16:21:21,951 - ERROR - 购买失败,无法获取内容 --- Logging error --- Traceback (most recent call last): File "/var/containers/Bundle/Application/F478C67C-EC3B-4CC7-AF32-6AA2047D0745/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/logging/__init__.py", line 1104, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'ascii' codec can't encode characters in position 34-37: ordinal not in range(128) Call stack: File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 464, in <module> main() File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 448, in main log_error("购买失败,无法获取内容") File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 73, in log_error logger.error(safe_str(message)) Message: '购买失败,无法获取内容' Arguments: () 2025-06-25 16:21:21,951 - ERROR - 购买失败,无法获取内容 2025-06-25 16:21:21,951 - ERROR - 购买失败,无法获取内容 2025-06-25 16:21:21,984 - INFO - 程序执行完成,耗时: 11.16秒 --- Logging error --- Traceback (most recent call last): File "/var/containers/Bundle/Application/F478C67C-EC3B-4CC7-AF32-6AA2047D0745/Pythonista3.app/Frameworks/Py3Kit.framework/pylib/logging/__init__.py", line 1104, in emit stream.write(msg + self.terminator) UnicodeEncodeError: 'ascii' codec can't encode characters in position 34-39: ordinal not in range(128) Call stack: File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 464, in <module> main() File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 461, in main log_info(f"\n程序执行完成,耗时: {elapsed:.2f}秒") File "/private/var/mobile/Containers/Shared/AppGroup/64BBE982-65A5-49E2-91F8-F4215FF90576/Pythonista3/Documents/Untitled.py", line 67, in log_info logger.info(safe_str(message)) Message: '\n程序执行完成,耗时: 11.16秒' Arguments: () 2025-06-25 16:21:21,984 - INFO - 程序执行完成,耗时: 11.16秒 2025-06-25 16:21:21,984 - INFO - 程序执行完成,耗时: 11.16秒 再次分析原因修正代码
06-26
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值