解决 Delphi XE5 写Android程序的No resource identifier found for attribute... 错误【转】

原文: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的编程吧~~~

时间: 2024-11-02 11:20:21

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

Delphi XE5 for Android 启动无黑屏等待总结

Delphi XE5 for Android 启动无黑屏等待总结  从embarcadero官方技术论坛找了下参考资料,对黑屏处理应该来说有了相应的办法,并且这种办法具有很好的应用价值,因此做了个总结,Delphi XE5 无黑屏从本质上讲是使用Android 原生开发语言java ,编写的程序启动时首先加载java编写的SplashScreen的activity,然后在splashScreenActivity中启动delphi FireMonkey中的com.embarcadero.firem

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

首先确保有这四个文件 安装jdk 先安装android开发SDK(并不只是为eclipse服务的),即运行installer_r15-windows,指定存储目录,然后就安装,安装到后期指定你要安装的android的版本等,例如我选1.6的版本,继续安装,很快就能结束. 解压eclipse到任意地方,运行eclipse.exe,点help点install new software,选择 http://dl-ssl.google.com/android/eclipse/ 注意不能是https 然后

Android出错问题:AndroidManifest.xml:2: error: No resource identifier found for attribute 'installLocatio

出错点: AndroidManifest.xml: error: No resource identifier found for attribute 'installLocation' in package 'android' 解决方法: 这是因为所使用的android中不支持该属性(installLocation),删除      android:installLocation="auto"即可,或者选择别的版本的android. Android出错问题:AndroidManife

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

Error:(108) No resource identifier found for attribute 'style' in package 'android' 解决方案: 这是错误的写法: android:style="?android:attr/progressBarStyleHorizontal" /> 去掉android:这个namespace就行了 正确写法如下: style="?android:attr/progressBarStyleHorizont

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

运行一个项目时在一个menu.xml文件item属性android:showAsAction 报错 No resource identifier found for attribute 'showAsAction' in package 'android' google了下,老外说是版本问题,showAsAction was added in API level 11要将API提升到11,添加 "android-support-v7-appcompat.jar" 到Android库(

Android调试错误-No resource identifier found for attribute 'showAsAction'

今天在研究有米广告技术时,第一次编译他们提供的Android示例工程,结果出现如下错误: [2014-11-29 11:28:25 - com.youmi.android.offerdemo.YoumiOffersAdsDemo] W/ResourceType(15184): Bad XML block: header size 201 or total size 0 is larger than data size 0[2014-11-29 11:28:25 - com.youmi.andro

No resource identifier found for attribute 'parentActivityName' in package 'android'

AndroidManifest.xml中代码如下: <pre name="code" class="java"><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myfirstapp" android:versionCode="1" android:versio

Android 官网提供的Custom-view 编译出错--error: No resource identifier found for attribute

error: No resource identifier found for attribute in custom-views from http://developer.android.com 原来: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:custom="http://schemas.android.com/apk/res/com.example

error: No resource identifier found for attribute &#39;format24Hour&#39; in package &#39;android&#39;

问题描述:这是在引入Android SDK api level 17中的ApiDemos时,报的错误,但是这个属性明明就是android自带的,怎么会报这种错误呢?百思不得其解,后来改了一下配置就好了,把Target  Api改成17就行了. 其实类似的问题都可以往这个方向思考:Android不同版本的兼容问题. 版权声明:本文为博主原创文章,未经博主允许不得转载. error: No resource identifier found for attribute 'format24Hour'