关于资源values-33等引用资源是api33的如何处理编译问题的信息

本文目录一览:

android xml图片找不到指定的资源文件报错应该怎么解决

我们在Android framework中修改资源文件时,在Android

4.0之前,都是直接在sourcecode/frameworks/base/core/res/res下面添加对应的资源文件,然后编译framework-res即可,但是这种情况到了Android

4.1就有改变了。按照以前的方法在编译的时候却会报错,提示找不到引用的资源文件,一般情况下找不到资源文件有以下几个原因:

(1). 资源id写错了,导致id不匹配;

(2). 未编译framework-res,从而导致无法找到资源文件;

比如你在framework中添加了一张图片,但你在编译framework-res之前去编译引用该资源的SystemUI,那肯定是找不到的。

(3). 未import正确的资源包;

在frameworks/base/core/res/res下编译生成的资源文件保存在out/target/common/R/com/android/internal/R.java

可以先在该R.java内看有没有你的资源id,然后检查源代码有没有:

import com.android.internal.R;

(4). 没有修改frameworks/base/core/res/res/values/public.xml;

第四点是Android 4.1才需要做的,在Android

4.1之前,我们添加一个资源文件,编译时会自动添加到public.xml中,但到了Android 4.1却不会了,需要手动添加,比如:

添加了一个布局文件,则需要在public.xml中添加如下代码:

[html] view

plaincopyprint?

java-symbol type=”layout” name=”usb_storage_connection_connected” /

java-symbol type=”layout” name=”usb_storage_connection_connected” /

添加了一个字符串,则需要在public.xml中添加如下代码:

[html] view

plaincopyprint?

java-symbol type=”string” name=”usb_storage_connection_message” /

java-symbol type=”string” name=”usb_storage_connection_message” /

添加了一张图片,则需要在public.xml中添加如下代码:

[html] view

plaincopyprint?

java-symbol type=”drawable” name=”usb_storage_connected” /

java-symbol type=”drawable” name=”usb_storage_connected” /

在布局文件中新增了一个控件的id,则需要在public.xml中添加如下代码:

[html] view

plaincopyprint?

java-symbol type=”id” name=”mytextView” /

java-symbol type=”id” name=”mytextView” /

新添加的资源仿照public.xml中原有的方式加上即可。

系统资源不够 无法完成api 怎样处理 十万火急

你好知友!

.

首先试试开机按F8选“最近一次的正确配置”回车。

1、如果故障依旧,请你用系统自带的系统还原,还原到你没有出现这次故障的时候修复(如果正常模式恢复失败,请开机按F8进入到安全模式中使用系统还原)。

2、如果无法进入安全模式进行系统还原。可开机按F8进入“带命令提示的安全模式”回车,可以在命令提示符中输入C:\Windows\system32\restore\rstrui 命令回车(以系统所在盘符为C盘为例),同样也可打开系统还原操作界面,以实现系统还原。

3、如果故障依旧,使用系统盘修复,打开命令提示符输入SFC /SCANNOW 回车(SFC和/之间有一个空格),插入原装系统盘修复系统,系统会自动对比修复的。

4、如果故障依旧,建议重装操作系统。

电脑提示系统资源不够,无法完成API:

如果我的回答对你有帮助.请点击我的回答下方【选为满意回答】按钮.你的采纳是我们回答的动力.

系统资源不够,无法完成API怎么办?

重装系统,可以将硬盘挂到其他电脑上拷处数据,或者做个GHOST

到其他分区盘上,等系统安装好,在恢复到其他分区,获取数据。

解决系统资源不足问题

第一种思路:

1.清除“剪贴板”

当“剪贴板”中存放的是一幅图画或大段文本时,会占用较多内存。请清除“剪贴板”中的内容,释放它占用的系统资源:单击“开始”,指向“程序”,指向“附件”,指向“系统工具”,单击“剪贴板查看程序”,然后在“编辑”菜单上,单击“删除”命令。

2.重新启动计算机

只退出程序,并不重新启动计算机,程序可能无法将占用的资源归还给系统。请重新启动计算机以释放系统资源。

3.减少自动运行的程序

如果在启动Windows时自动运行的程序太多,那么,即使重新启动计算机,也将没有足够的系统资源用于运行其他程序。设置Windows不启动过多程序:其一,单击“开始→运行”,键入“msconfig”,单击“确定”按钮,单击“启动”选卡,清除不需要自启动的程序前的复选框。其二,单击“开始→运行”,键入“sysedit”,单击“确定”按钮,删除“autoexec.bat”、“win.ini”和“config.sys”文件中不必要的自启动的程序行。然后,重新启动计算机。

4.设置虚拟内存

虚拟内存不足也会造成系统运行错误.可以在“系统属性”对话框中手动配置虚拟内存,把虚拟内存的默认位置转到可用空间大的其他磁盘分区。

5.应用程序存在Bug或毁坏

有些应用程序设计上存在Bug或者已被毁坏,运行时就可能与Windows发生冲突或争夺资源,造成系统资源不足。解决方法有二:一是升级问题软件,二是将此软件卸载,改装其他同类软件。

6.内存优化软件

不少的内存优化软件,如RAM Idle和Memo Kit都能够自动清空“剪贴板”、释放被关闭程序未释放的系统资源、对虚拟内存文件(Win386.swp)进行重新组织等,免除手工操作的麻烦,达到自动释放系统资源的目的。

第二种思路:

1.禁用一部分启动项

启动时加载过多的应用程序会使Windows因系统资源严重不足而“蓝屏”,因此我们最好运行“Msconfig”禁用一部分应用程序。或者使用Windows优化大师来代劳。

2.设置足够的虚拟内存

虚拟内存不足也会造成系统多任务运算错误,我们可以通过时常删除一些临时文件和交换文件对此问题加以解决,此外还可以在“系统属性”下手动配置虚拟内存,把虚拟内存的默认位置转到其他逻辑盘下。并设置得大一些。

3.给硬盘保留足够空间

由于Win9X运行时需要用硬盘作虚拟内存,这就要求硬盘必须保留一定的自由空间以保证程序的正常运行。一般而言,最低应保证100MB以上的空间,否则出现“蓝屏”很可能与硬盘剩余空间太小有关。另外,硬盘的碎片太多,也容易导致“蓝屏”的出现。因此,每隔一段时间进行一次碎片整理是必要的。

4.使用内存管理软件

剩下的就是些杂项了,诸如不用activedesktop之类浪费资源的功能。使用内存管理软件,如RAM Idle之类的。养成好习惯,暂时不用的程序就将其关闭。

如何为Android系统添加一个新的资源包

如何为Android系统添加一个新的资源包传统的Android系统只有一个framework-res.apk资源包,第三方厂商在进行rom定制时会直接修改framework res资源,达到美化目的。但是这种方式跟原生资源的耦合度过高,在系统迁移或者framework ui移植时需要进行人工merge,工作量巨大。通过为Android添加一个新的独立的资源包,可以将厂商定制资源独立出来,可移植、可维护性非常好。 具体做法可以分为以下几个步骤: 1. 修改build/core/clear_var.mk LOCAL_USE_LETV_FRAMEWORK_RES:= true 2. 修改build/core/package.mk 以下脚本可以加在 $(R_file_stamp): $(framework_res_package_export_deps) 之前,然后修改$(R_file_stamp): $(framework_res_package_export_deps) 和 $(LOCAL_INTERMEDIATE_TARGETS): \PRIVATE_AAPT_INCLUDES := $(framework_res_package_export) 如下所示: view sourceprint?1 ifeq ($(LOCAL_USE_LETV_FRAMEWORK_RES),true) 2 letv_framework_res_package_export := \ 3 $(call intermediates-dir-for,APPS,letv-framework-res,,COMMON)/package-export.apk 4 letv_framework_res_package_export_deps := \ 5 $(dir $(letv_framework_res_package_export))src/R.stamp 6 else 7 letv_framework_res_package_export := 8 letv_framework_res_package_export_deps := 9 endif # LOCAL_USE_LETV_FRAMEWORK_RES view sourceprint?1 $(R_file_stamp): $(framework_res_package_export_deps) $(letv_framework_res_package_export_deps) 2 $(LOCAL_INTERMEDIATE_TARGETS): \ 3 PRIVATE_AAPT_INCLUDES := $(framework_res_package_export) \ 4 $(letv_framework_res_package_export) 5 endif # LOCAL_NO_STANDARD_LIBRARIES 3. 修改build/target/product/core.mk 在PRODUCT_PACKAGES增加letv-framework-res 4. 添加一个新的资源包项目,这里在framework/base/core/res同级目录下建立一个新的文件夹letv_res用来存放我们的资源。把res目录下的AndroidManifest.xml和Android.mk拷贝过来,进行修改。 记得设置LOCAL_USE_MY_FRAMEWORK_RES为false。 view sourceprint?01 LOCAL_PATH:= $(call my-dir) 02 include $(CLEAR_VARS) 03 04 LOCAL_MODULE_TAGS := optional 05 06 LOCAL_PACKAGE_NAME := letv-framework-res 07 LOCAL_CERTIFICATE := platform 08 09 # Set LOCAL_USE_LETV_FRAMEWORK_RES as false 10 LOCAL_USE_LETV_FRAMEWORK_RES := false 11 12 # Tell aapt to create “extending (non-application)” resource IDs, 13 # since these resources will be used by many apps. 14 LOCAL_AAPT_FLAGS := -x 15 16 # Install this alongside the libraries. 17 LOCAL_MODULE_PATH := $(TARGET_OUT_JAVA_LIBRARIES) 18 19 # Create package-export.apk, which other packages can use to get 20 # PRODUCT-agnostic resource data like IDs and type definitions. 21 LOCAL_EXPORT_PACKAGE_RESOURCES := true 22 23 # Include resources generated by system RenderScript files. 24 framework_GENERATED_SOURCE_DIR := $(call intermediates-dir-for,JAVA_LIBRARIES,framework,,COMMON)/src 25 framework_RenderScript_STAMP_FILE := $(framework_GENERATED_SOURCE_DIR)/RenderScript.stamp 26 #LOCAL_RESOURCE_DIR := $(framework_GENERATED_SOURCE_DIR)/renderscript/res $(LOCAL_PATH)/res 27 28 include $(BUILD_PACKAGE) 29 30 # Make sure the system .rs files get compiled before building the package-export.apk. 31 #$(resource_export_package): $(framework_RenderScript_STAMP_FILE) 32 33 # define a global intermediate target that other module may depend on. 34 .PHONY: letv-framework-res-package-target 35 letv-framework-res-package-target: $(LOCAL_BUILT_MODULE) view sourceprint?01 ?xml version=”1.0″ encoding=”utf-8″? 02 manifest xmlns:android=”” 03 package=”letv” coreApp=”true” android:sharedUserId=”android.uid.system” 04 android:sharedUserLabel=”@null” 05 06 application android:process=”system” 07 android:persistent=”true” 08 android:hasCode=”false” 09 android:label=”@null” 10 android:allowClearUserData=”false” 11 android:killAfterRestore=”false” 12 android:icon=”@null” 13 14 /application 15 16 /manifest 资源的放置跟res下的类似,记得values目录下创建public.xml,public.xml对id的类型区分比较严格,attr必须是0x0x010000开头,drawable必须是0x0x020000开头,其他类型好像就没有限制,直接依次0x0x030000、0x0x040000开始即可。否则,编译过程中会出现segmentation fault错误。 view sourceprint?1 resources 2 public type=”attr” name=”cForeground” id=”0x03010000″ / 3 public type=”drawable” name=”ic_filemanager” id=”0x03020000″ / 4 public type=”style” name=”LetvTheme” id=”0x03030000″ / 5 public type=”string” name=”letv” id=”0x03040000″ / 6 public type=”dimen” name=”letv_width” id=”0x03050000″ / 7 public type=”layout” name=”letv_text” id=”0x03060000″ / 8 /resources 5. 以上只是解决了资源的编译环境问题,资源的查找过程也需要进行修改,修改 AssetManager.java,在init()后添加代码 addAssetPath(“/system/framework/letv-framework-res.apk”); view sourceprint?01 public AssetManager() { 02 synchronized (this) { 03 if (DEBUG_REFS) { 04 mNumRefs = 0; 05 incRefsLocked(this.hashCode()); 06 } 07 init(); 08 addAssetPath(“/system/framework/letv-framework-res.apk”); 09 if (localLOGV) Log.v(TAG, “New asset manager: ” + this); 10 ensureSystemAssets(); 11 } 12 } 6. 最后就是资源应用问题。应用程序在xml文件中引用letv-framework-res.apk中的资源时可以使用与原生资源类似的访问方式,首先声明letv xmlns : view sourceprint?1 xmlns:letv=”” 然后像@android:drawable @android:dimen这种引用方式改成@letv:drawable @letv:dimen即可。 view sourceprint?01 ?xml version=”1.0″ encoding=”utf-8″? 02 LinearLayout 03 xmlns:android=”” 04 xmlns:letv=”” 05 android:layout_width=”fill_parent” 06 android:layout_height=”wrap_content” 07 android:gravity=”center” 08 android:paddingTop=”@letv:dimen/letv_width” 09 android:orientation=”horizontal” 10 11 ImageView android:id=”@+id/file_icon” 12 android:layout_width=”wrap_content” 13 android:layout_height=”wrap_content” 14 android:layout_gravity=”center” 15 android:layout_marginBottom=”40dp” 16 android:src=”@letv:drawable/ic_filemanager” / 17 18 /LinearLayout 转载,仅供参考。

如何为android系统添加一个新的资源包

具体做法可以分为以下几个步骤:

1. 修改build/core/clear_var.mk

LOCAL_USE_LETV_FRAMEWORK_RES:= true

2. 修改build/core/package.mk

以下脚本可以加在 $(R_file_stamp): $(framework_res_package_export_deps) 之前,然后修改$(R_file_stamp): $(framework_res_package_export_deps) 和 $(LOCAL_INTERMEDIATE_TARGETS): \

PRIVATE_AAPT_INCLUDES := $(framework_res_package_export)

如下所示:

view sourceprint?

1 ifeq ($(LOCAL_USE_LETV_FRAMEWORK_RES),true)

2 letv_framework_res_package_export := \

3 $(call intermediates-dir-for,APPS,letv-framework-res,,COMMON)/package-export.apk

4 letv_framework_res_package_export_deps := \

5 $(dir $(letv_framework_res_package_export))src/R.stamp

6 else

7 letv_framework_res_package_export :=

8 letv_framework_res_package_export_deps :=

9 endif # LOCAL_USE_LETV_FRAMEWORK_RES

view sourceprint?

1 $(R_file_stamp): $(framework_res_package_export_deps) $(letv_framework_res_package_export_deps)

2 $(LOCAL_INTERMEDIATE_TARGETS): \

3 PRIVATE_AAPT_INCLUDES := $(framework_res_package_export) \

4 $(letv_framework_res_package_export)

5 endif # LOCAL_NO_STANDARD_LIBRARIES

3. 修改build/target/product/core.mk

在PRODUCT_PACKAGES增加letv-framework-res

4. 添加一个新的资源包项目,这里在framework/base/core/res同级目录下建立一个新的文件夹letv_res用来存放咱们的资源。把res目录下的AndroidManifest.xml和Android.mk拷贝过来,进行修改。

记得设置LOCAL_USE_MY_FRAMEWORK_RES为false。

view sourceprint?

01 LOCAL_PATH:= $(call my-dir)

02 include $(CLEAR_VARS)

03

04 LOCAL_MODULE_TAGS := optional

05

06 LOCAL_PACKAGE_NAME := letv-framework-res

07 LOCAL_CERTIFICATE := platform

08

09 # Set LOCAL_USE_LETV_FRAMEWORK_RES as false

10 LOCAL_USE_LETV_FRAMEWORK_RES := false

11

12 # Tell aapt to create “extending (non-application)” resource IDs,

13 # since these resources will be used by many apps.

14 LOCAL_AAPT_FLAGS := -x

15

16 # Install this alongside the libraries.

17 LOCAL_MODULE_PATH := $(TARGET_OUT_JAVA_LIBRARIES)

18

19 # Create package-export.apk, which other packages can use to get

20 # PRODUCT-agnostic resource data like IDs and type definitions.

21 LOCAL_EXPORT_PACKAGE_RESOURCES := true

22

23 # Include resources generated by system RenderScript files.

24 framework_GENERATED_SOURCE_DIR := $(call intermediates-dir-for,JAVA_LIBRARIES,framework,,COMMON)/src

25 framework_RenderScript_STAMP_FILE := $(framework_GENERATED_SOURCE_DIR)/RenderScript.stamp

26 #LOCAL_RESOURCE_DIR := $(framework_GENERATED_SOURCE_DIR)/renderscript/res $(LOCAL_PATH)/res

27

28 include $(BUILD_PACKAGE)

29

30 # Make sure the system .rs files get compiled before building the package-export.apk.

31 #$(resource_export_package): $(framework_RenderScript_STAMP_FILE)

32

33 # define a global intermediate target that other module may depend on.

34 .PHONY: letv-framework-res-package-target

35 letv-framework-res-package-target: $(LOCAL_BUILT_MODULE)

view sourceprint?

01 ?xml version=”1.0″ encoding=”utf-8″?

02 manifest xmlns:android=””

03 package=”letv” coreApp=”true” android:sharedUserId=”android.uid.system”

04 android:sharedUserLabel=”@null”

05

06 application android:process=”system”

07 android:persistent=”true”

08 android:hasCode=”false”

09 android:label=”@null”

10 android:allowClearUserData=”false”

11 android:killAfterRestore=”false”

12 android:icon=”@null”

13

14 /application

15

16 /manifest

资源的放置跟res下的类似,记得values目录下创建public.xml,public.xml对id的类型区分比较严格,attr必须是0x0x010000开头,drawable必须是0x0x020000开头,其他类型好像就没有限制,直接依次0x0x030000、0x0x040000开始即可。否则,编译过程中会出现segmentation fault错误。

view sourceprint?

1 resources

2 public type=”attr” name=”cForeground” id=”0x03010000″ /

3 public type=”drawable” name=”ic_filemanager” id=”0x03020000″ /

4 public type=”style” name=”LetvTheme” id=”0x03030000″ /

5 public type=”string” name=”letv” id=”0x03040000″ /

6 public type=”dimen” name=”letv_width” id=”0x03050000″ /

7 public type=”layout” name=”letv_text” id=”0x03060000″ /

8 /resources

5. 以上只是解决了资源的编译环境问题,资源的查找过程也需要进行修改,修改 AssetManager.java,在init()后添加代码 addAssetPath(“/system/framework/letv-framework-res.apk”);

view sourceprint?

01 public AssetManager() {

02 synchronized (this) {

03 if (DEBUG_REFS) {

04 mNumRefs = 0;

05 incRefsLocked(this.hashCode());

06 }

07 init();

08 addAssetPath(“/system/framework/letv-framework-res.apk”);

09 if (localLOGV) Log.v(TAG, “New asset manager: ” + this);

10 ensureSystemAssets();

11 }

12 }

6. 最后就是资源应用问题。应用程序在xml文件中引用letv-framework-res.apk中的资源时可以使用与原生资源类似的访问方式,首先声明letv xmlns :

view sourceprint?

1 xmlns:letv=””

然后像@android:drawable @android:dimen这种引用方式改成@letv:drawable @letv:dimen即可。

view sourceprint?

01 ?xml version=”1.0″ encoding=”utf-8″?

02 LinearLayout

03 xmlns:android=””

04 xmlns:letv=””

05 android:layout_width=”fill_parent”

06 android:layout_height=”wrap_content”

07 android:gravity=”center”

08 android:paddingTop=”@letv:dimen/letv_width”

09 android:orientation=”horizontal”

10

11 ImageView android:id=”@+id/file_icon”

12 android:layout_width=”wrap_content”

13 android:layout_height=”wrap_content”

14 android:layout_gravity=”center”

15 android:layout_marginBottom=”40dp”

16 android:src=”@letv:drawable/ic_filemanager” /

17

18 /LinearLayout

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/312846.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2025-01-06 15:17
下一篇 2025-01-06 15:17

相关推荐

  • Python官网中文版:解决你的编程问题

    Python是一种高级编程语言,它可以用于Web开发、科学计算、人工智能等领域。Python官网中文版提供了全面的资源和教程,可以帮助你入门学习和进一步提高编程技能。 一、Pyth…

    编程 2025-04-29
  • 如何解决WPS保存提示会导致宏不可用的问题

    如果您使用过WPS,可能会碰到在保存的时候提示“文件中含有宏,保存将导致宏不可用”的问题。这个问题是因为WPS在默认情况下不允许保存带有宏的文件,为了解决这个问题,本篇文章将从多个…

    编程 2025-04-29
  • Python飞机大战中文字资源分析

    Python飞机大战是一款经典的飞行射击游戏,在游戏过程中,玩家需要控制一架飞机不断消灭敌人,生存到最后。该游戏使用Python语言编写,其中涉及到的文字资源对游戏的整体体验有重要…

    编程 2025-04-29
  • 主存属于可抢占资源吗?

    主存(内存)一般被视为非可抢占资源,即进程已经分配内存后,操作系统不会轻易将其从该进程中抢占。然而在一些情况下,主存也可以被视为可抢占资源。 一、 内存分配 在大多数情况下,内存是…

    编程 2025-04-29
  • Java Thread.start() 执行几次的相关问题

    Java多线程编程作为Java开发中的重要内容,自然会有很多相关问题。在本篇文章中,我们将以Java Thread.start() 执行几次为中心,为您介绍这方面的问题及其解决方案…

    编程 2025-04-29
  • Python爬虫乱码问题

    在网络爬虫中,经常会遇到中文乱码问题。虽然Python自带了编码转换功能,但有时候会出现一些比较奇怪的情况。本文章将从多个方面对Python爬虫乱码问题进行详细的阐述,并给出对应的…

    编程 2025-04-29
  • NodeJS 建立TCP连接出现粘包问题

    在TCP/IP协议中,由于TCP是面向字节流的协议,发送方把需要传输的数据流按照MSS(Maximum Segment Size,最大报文段长度)来分割成若干个TCP分节,在接收端…

    编程 2025-04-29
  • 如何解决vuejs应用在nginx非根目录下部署时访问404的问题

    当我们使用Vue.js开发应用时,我们会发现将应用部署在nginx的非根目录下时,访问该应用时会出现404错误。这是因为Vue在刷新页面或者直接访问非根目录的路由时,会认为服务器上…

    编程 2025-04-29
  • Java 监控接口返回信息报错信息怎么处理

    本文将从多个方面对 Java 监控接口返回信息报错信息的处理方法进行详细的阐述,其中包括如何捕获异常、如何使用日志输出错误信息、以及如何通过异常处理机制解决报错问题等等。以下是详细…

    编程 2025-04-29
  • 如何解决egalaxtouch设备未找到的问题

    egalaxtouch设备未找到问题通常出现在Windows或Linux操作系统上。如果你遇到了这个问题,不要慌张,下面我们从多个方面进行详细阐述解决方案。 一、检查硬件连接 首先…

    编程 2025-04-29

发表回复

登录后才能评论