发布的apk应用程序上的android.content.res.Resources.NotFoundException
我知道这不是第一次问这个问题,但我尝试了所有应该是解决办法的东西,但都没有用发布的apk应用程序上的android.content.res.Resources.NotFoundException,android,ant,Android,Ant,我知道这不是第一次问这个问题,但我尝试了所有应该是解决办法的东西,但都没有用 删除gen/bin文件夹 干净的 布局不存在(存在,在我的res/layout文件夹中) 不使用android.R 我忘了其他的,但你明白了 情况是这样的 我有一个android应用程序,在调试模式下工作正常,但当我通过ant创建发布apk时,在安装ant构建生成的apk后尝试启动它时,会抛出和异常android.content.res.Resources$NotFoundException:Resource ID#0
android.content.res.Resources$NotFoundException:Resource ID#0x7f03004a
。在我添加android facebook3.5 sdk之前,这种情况是不会发生的
当我发布时,我通常只需输入:
<代码>ant release all
对应的build.xml如下所示(代码段):
数字@{uni}
建筑物大学名称${University.Name}
--------
将文件复制到dropbox
您是否尝试过在proguard.cfg中调整设置。我通常会在proguard混淆了一些东西,并且包含了一些本不应该包含的东西时得到这个结果。也许您可以尝试以下设置:
-dontwarn com.somenameoflibrary**
-keep class somenameoflibary.*{*}已经坚持了好几天,但最终找到了解决方案。我在build.xml中定义了一个目标(见下文)
注释了
${basedir}/${android.library.reference.1}/res
及其前面的-S
。我只是取消了它的注释,事情就成功了。我真的不知道为什么,但我认为取消注释是合乎逻辑的,因为我最近添加了facebook sdk库,正如您所知,在使用facebook sdk之前,这个错误是不存在的。在我的情况下,Project->Clean和ant Clean都不起作用。在我在Preferences->Installed JREs下取消选择jdk并选择jre后,问题得到了解决。很抱歉,它不起作用。甚至可以禁用proguard,但异常仍然发生。
<target name="release-all">
<record name="logfile.txt" action="start" append="false" />
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="${antcontrib.dir}"/>
</classpath>
</taskdef>
<for list="${unis}" param="uni">
<sequential>
<echo>Number @{uni}</echo>
<var name="university.name" value="@{uni}"/>
<echo>Building University Name ${university.name}</echo>
<subant
buildpath="build.xml"
failonerror="true">
<target name="clean" />
<target name="release" />
</subant>
<echo>--------</echo>
<echo>Copying files to dropbox</echo>
<copy todir="${dropbox.dir}/<somepaththatiwillnotspecify>">
<fileset dir="${out.absolute.dir}">
<include name="*release.apk"/>
</fileset>
<mapper type="glob" from="*release.apk" to="@{uni}.apk"/>
</copy>
<var name="university.name" unset="true"/>
</sequential>
</for>
<record name="logfile.txt" action="stop"/>
</target>
<target name="-package-resources" depends="-crunch">
<exec executable="${aapt}" failonerror="true">
<arg value="package" />
<arg value="-f" />
<arg value="--auto-add-overlay" />
<arg value="-M" />
<arg path="${basedir}/AndroidManifest.xml" />
<arg value="-S" />
<arg path="${resource.absolute.dir}" />
<arg value="-S" />
<arg path="${basedir}/${android.library.reference.1}/res"/>
<arg value="-A" />
<arg path="${asset.absolute.dir}" />
<arg value="-I" />
<arg path="${android.jar}" />
<arg value="-F" />
<arg path="${out.absolute.dir}/${resource.package.file.name}" />
<arg value="--rename-manifest-package" />
<arg value="pokit.campus.${university.name}" />
</exec>
</target>