Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
发布的apk应用程序上的android.content.res.Resources.NotFoundException_Android_Ant - Fatal编程技术网

发布的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

我知道这不是第一次问这个问题,但我尝试了所有应该是解决办法的东西,但都没有用

  • 删除gen/bin文件夹
  • 干净的
  • 布局不存在(存在,在我的res/layout文件夹中)
  • 不使用android.R
  • 我忘了其他的,但你明白了
  • 情况是这样的

    我有一个android应用程序,在调试模式下工作正常,但当我通过ant创建发布apk时,在安装ant构建生成的apk后尝试启动它时,会抛出和异常
    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>