原文:http://www.hxhlb.cn/article/32142aaeb67bbc05379369c3.html

那一天,我装上了RAD Studio XE5.

当天晚上,我就写了一个小小的Android程序.

但是,苦于没有好手机,没办法进行测试.

今天,下载了一晚上,终于把Android所有的sdk都安装上了,配置进XE5中

唉,用这么庞大的XE5来编写Android SDK 2.1版本的程序,我都觉得害羞...

废话不多说,下面我们来解决问题.

XE5自带的SDK,是SDK4.2,我把在4.2版本下写的程序放到2.1版本上进行编译发布,理所当然的报错了.

首先,是这么一个错误:(我把我路径的一部分替换掉了,大家理解一下意思即可)

1 [PAClient Error] Error: E2312 Unable to execute '"G:\ProgramTools\adt-bundle-windows-x86_64-20130917\sdk\build-tools\17.0.0\aapt.exe" package -f -M "C:\Users\xxx\Desktop\D_XE5_Android_Browser\Android\Debug\HadesAndroidBrowser\AndroidManifest.xml" -F "C:\Users\xxx\Desktop\D_XE5_Android_Browser\Android\Debug\HadesAndroidBrowser\bin\HadesAndroidBrowser-unsigned.apk" -I "G:\ProgramTools\adt-bundle-windows-x86_64-20130917\sdk\platforms\android-7\android.jar" -S "C:\Users\xxx\Desktop\D_XE5_Android_Browser\Android\Debug\HadesAndroidBrowser\res" -A "C:\Users\xxx\Desktop\D_XE5_Android_Browser\Android\Debug\HadesAndroidBrowser\assets" "C:\Users\xxx\Desktop\D_XE5_Android_Browser\Android\Debug\HadesAndroidBrowser\library" "C:\Users\xxx\Desktop\D_XE5_Android_Browser\Android\Debug\HadesAndroidBrowser\classes"' (Error 1)

这是从XE5的Build输出里输出的,我过去一看,没有生成apk(这不是废话...生成了还报错...)

但是,它没给原因啊,于是,我就复制到CMD中亲自执行了一下,发现报错如下:

1 C:\Users\xxx\Desktop\D_XE5_Android_Browser\Android\Debug\HadesAndroidBrowser\AndroidManifest.xml:20: error: No resource identifier found for attribute 'largeHeap' in package 'android'
2 C:\Users\xxx\Desktop\D_XE5_Android_Browser\Android\Debug\HadesAndroidBrowser\AndroidManifest.xml:23: error: No resource identifier found for attribute 'restoreAnyVersion' in package 'android'
3 C:\Users\xxx\Desktop\D_XE5_Android_Browser\Android\Debug\HadesAndroidBrowser\AndroidManifest.xml:23: error: No resource identifier found for attribute 'installLocation' in package 'android'

哎呀,看了这个我真是一个脑袋两个大啊.

无奈,只好去搜搜这些是什么东西去了.

先搜了第一个:largeHeap,我这个英文差啊,不知道字面上是什么意思,但是度娘说了,在android中,这表示单个进程内存分配的一个属性.在3.0以上版本都支持.

我就明白了,我说在高版本的SDK上不报错,在我2.1上就报错,原来是新特性啊.

但是怎么去掉呢?

这次没百度着,换了谷歌继续,在官网上发现了这么一段话:(网址:http://www.embarcadero.com/starthere/xe5/mobdevsetup/android/en/preparing_an_android_application_for_deployment.html )

大概意思是说,如果你要发布你的Android程序,你就要进行一些设置,在 工程-->选项 里进行设置.

.....

RAD Studio会根据一个叫AndroidManifest.template.xml的文件,生成AndroidManifest.xm的文件

看到这里,我就去看了下AndroidManifest.xml,发现,在这个xml文件中真的有定义这些属性:

这不就好办了,直接删除这几行.

然后清理,编译,发布.

哈哈,果然没错了!

程序编译出来了.

下面就开始安装吧!我直接插上手机,进行运行了.

但是,高兴的太早了.虽然编译成功了,但是在安装的时候却出错了:

1 [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

这个意思是说,我的签名好像不对.

真崩溃了,这怎么办.还是找度娘吧.

别说,还真找出来了.在这里(http://androiddevelopertutorial.com/fixing-install_parse_failed_no_certificates-android-jdk7 )

说是,JDK1.7和Android有些不兼容.我想,哎呀真是手贱啊!

自己就是卸载的jdk1.6换的jdk1.7啊,这不是自己给自己找麻烦嘛!

他说的解决方案,是给 jarsigner加个参数.

本来我是想直接改XE5的配置的,不过找了半天没找到,自己也懒得手动加.

然后就又去逛了一下RAD的官网,果然,又被我发现了!

RAD说,只要你选的配置为Release,就能使用没有签名的apk.(http://docwiki.embarcadero.com/RADStudio/XE5/en/Deploying_Your_Unsigned_Android_Application)

那好办,反正AndroidManifest.template.xml已经修改过了,换个配置无所谓了.

果然,换了配置之后,一切都好起来了:

下图是我安装成功之后XE5的截图:

可能你会看不清最右边的配置,不过,我会提供给你我的工程代码,你用XE5打开就知道是什么情况了!

下面是程序的截图:

怎么样,程序还不错吧~~

项目下载地址: http://www.hxcarrot.com/Download/HadesAndroidBrowser_2.1.rar

一起来享受Android的编程吧~~~

解决 Delphi XE5 写Android程序的No resource identifier found for attribute... 错误【转】的更多相关文章

  1. Delphi XE5开发Android程序使用自定义字体文件.

    万事大吉,只欠根据字体文件(.ttf文件)切换阅读字体,通常Android系统只带三种以下字体.一般用Java/Eclipse开发的话比较简单,typeface的createFromAsset,cre ...

  2. Delphi XE5 for Android (八)

    delphi xe5 编译的程序在启动时会有短暂的黑屏出现,这个现象产生是因为启动首个activity时会加载一些初始化数据,整个时间大约在2~3秒,如何处理? 网上有些资料,这里主要参考和整理了CS ...

  3. 【百度地图-安卓SDK】从头开始写android程序

    [百度地图-安卓SDK]从头开始写android程序首先确保有这四个文件    安装jdk先安装android开发SDK(并不只是为eclipse服务的),即运行installer_r15-windo ...

  4. Delphi XE5的Android开发平台搭建[转]

    Delphi XE5支持Android ARM的开发,可以在Android虚拟机里运行,因此建议将XE5安装在64bit的Windows,内存可以大于3GB Delphi XE5安装光盘中包含了最基本 ...

  5. Delphi XE5 for Android (一)

    Delphi XE5 出来了,支持Android的开发,试用了一下,有几个问题: 1.只支持ARM7的设备,不支持Inter设备.手上刚好有一个华硕K004,很遗憾用不上,只能用手机试了. 2.要支持 ...

  6. Delphi XE5的Android开发平台搭建

    Delphi XE5支持Android ARM的开发,可以在Android虚拟机里运行,因此建议将XE5安装在64bit的Windows,内存可以大于3GB Delphi XE5安装光盘中包含了最基本 ...

  7. 用C++写android程序(包含界面+发短信)

    首先为什么要用C++写android程序呢?主要是因为java写的android程序太容易被发编译,相对于java编译后的dex文件,底层的native so更加不容易被反编译,所以为了安全起见,可以 ...

  8. No resource identifier found for attribute 'showAsAction' in package 'android'

    运行一个项目时在一个menu.xml文件item属性android:showAsAction 报错 No resource identifier found for attribute 'showAs ...

  9. Error:(108) No resource identifier found for attribute 'style' in package 'android'

    Error:(108) No resource identifier found for attribute 'style' in package 'android' 解决方案: 这是错误的写法: a ...

随机推荐

  1. JDK7新特性try-with-resources语句

    try-with-resources语句是一种声明了一种或多种资源的try语句.资源是指在程序用完了之后必须要关闭的对象.try-with-resources语句保证了每个声明了的资源在语句结束的时候 ...

  2. MT【174】凹凸无妨

    已知函数$f(x)=|x^3+3x^2-ax-b|$,对任意$a,b\in R$存在$x\in[-3,0]$使得$f(x)\le m$成立,求$m$的范围.求 $\displaystyle\min_{ ...

  3. stm32的双向io口

    # stm的io设置为双向问题,将io端口模式配置为 open-drain mode > 在io端口配置为输出模式时,输入通道上的施密特触发器一直是打开的,所以读取IDR是能检测到端口电平的 & ...

  4. bzoj2456 mode (思路)

    不能把数存下来. 于是来打擂台,如果新数和他不相等,cnt--,否则cnt++.如果cnt<=0了,那个新数就来把它顶掉,然后把cnt重置成1 最后在台上的就是那个次数大于N/2的众数 (连&l ...

  5. java实现超大整数加减乘除四则运算

    原理: 用数组存储数字,按照计算法则进行运算. 代码: package com.hdwang; import java.util.regex.Matcher; import java.util.reg ...

  6. 洛谷P3241 开店

    题意:紫妹和幽香是17岁的少女,喜欢可爱的东西. 给定一棵树,有点权,边权.每次求所有权值在[l, r]范围内的点到点x的距离和.强制在线. 解:动态点分治怎么搞啊...... 一开始想的是权值的限制 ...

  7. plsql批量导入sql文件

    背景:有时候在两个数据库之间导入导出数据,不可避免的需要进行sql文件的批量导入,一个个导入效率太低,所以可以考虑批量导入的办法进行导入. 操作步骤 1.假设有三个sql脚本,分别为aa.sql,bb ...

  8. 《剑指offer》— JavaScript(30)连续子数组的最大和

    连续子数组的最大和 题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好 ...

  9. linux 系统文件类型、系统安装时间、系统启动时间、系统运行时间、设置及显示时间、系统时间和硬件时间

    系统文件类型: 1) $mout 2) df -l:仅列出本地文件系统:-h (--human-readable):-T:文件系统类型 $df -lhf 3) file -s (--special-f ...

  10. 函数和常用模块【day06】:shutil模块(四)

    本节内容 简书 模块详解 压缩解压 一.简述 我们在日常处理文件时,经常用到os模块,但是有的时候你会发现,像拷贝.删除.打包.压缩等文件操作,在os模块中没有对应的函数去操作,下面我们就来讲讲高级的 ...