为什么打包的apk中反射不到R.java这个类

为什么打包的apk中反射不到R.java这个类,第1张

android 程序中的资源ID是Android SDK自动生成的,Android SDK会自动生成一个R文件,所有的资源ID都在R文件中。

以下是R文件的说明:

/ AUTO-GENERATED FILE  DO NOT MODIFY

This class was automatically generated by the

aapt tool from the resource data it found  It

should not be modified by hand

/

提示开发者,这是一个自动生成的文件,不能手动去修改它。

Android中的组件需要用一个int类型的值来表示,这个值也就是组件标签中的  id属性值。id属性只能接受资源类型的值也就是必须以@开头的值,例如@id/abc、@+id/xyz等。

如果在@后面使用“+”表示当修改完某个布局文件并保存后系统会自动在  Rjava文件中生成相应的int类型变量。变量名就是“/”后面的值例如@+id/xyz  会在Rjava文件中生成int xyz = value其中value是一个十六进制的数。

如果  xyz在Rjava中已经存在同名的变量就不再生成新的变量而该组件会使用这已存在的变量的值。

rm(list=ls())##清除之前数据

library(rms)  ###加载rms包#

library(foreign)

library(survival)

library(rmda)

##installpackages("DynNom")

library(DynNom)

setwd("C://Users//zhanglingyu//Desktop//测试")  #设置工作目录

rt<- readtable('测试txt',header=T,sep="\t")

head(rt)  #查看前5行的数据

str(rt)

##接着对所有变量数据进行打包

ddist <- datadist(rt)  #将数据打包

options(datadist='ddist')

model1<- lrm(rt$fustat ~ Age+Gender+Tau+EMPG+Glu+HCY+VB12+ALB, data =  rt)

summary(model1)

par(mgp=c(16,06,0),mar=c(2,2,2,2))  ##设置画布

nomogram <- nomogram(model1,fun=function(x)1/(1+exp(-x)), ##逻辑回归计算公式

                    funat = c(0001,001,005,seq(01,09,by=01),095,099,0999),#风险轴刻度

                    funlabel = "Risk of Alzheimer Disease", #风险轴便签

                    lp=T,  ##是否显示系数轴

                    confint = F, ##每个得分的置信度区间,用横线表示,横线越长置信度越

                    abbrev = F#是否用简称代表因子变量

)

plot(nomogram,

    #1变量与图形的占比

    xfrac=35,

    #2变量字体加粗

    cexvar=1,

    #3数轴:字体的大小

    cexaxis=08,

    #4数轴:刻度的长度

    tcl=-05,

    #5数轴:文字与刻度的距离

    lmgp=03,

    #6数轴:刻度下的文字,1=连续显示,2=隔一个显示一个

    labelevery=1,

    #71个页面有几个数轴(这个可以压缩行间距)

    naxes=13,

    #8垂直线的颜色

    colgrid=gray(c(08, 095)),

    #9线性预测轴名字

    lplabel="Linear Predictorlp",

    #10变量分数名字

    pointslabel='Points',

    #11总分名字

    totalpointslabel='Total Points',

    forcelabel=F#没啥用TRUE强制标记的每个刻度线都绘制标签,我也没研究明白

)

#运行以展示Nomogram每个变量的分数

model1

##生成改良诺模图

plot(nomogram,colgrid = c("Tomato2","DodgerBlue"))

总体思路是先打成jar再把jar打成exe。主要看13和23里的内容就可以了。1.将项目打成jar:11要将项目打包成jar文件,方法很多,可以用Eclipse自带的打包工具Ant打包,也可以用Eclipse的Export生成jar。经过尝试后,我不推荐用Ant打包,因为要自己编写xml脚本语言,还要增加一些外部的jar,所以我打了好几次都没打成。12在这里介绍两种方法生成jar,第一种是用Eclpise的Export功能。在要打包的项目上击右键,选择Export,在窗口中选择Java里的JARfile。Next后的窗[color=#000000]口中已经自动选好了要打包的[/color]项目,用户可以点击加号查看项目里被打包的内容。在下面的JARfile里设置你打包生成jar文件的输出目录,下一步在出现的窗口中选择Useexistingmanifestfromworkspace,在下面的Mainclass后面直接点Browse,它会自动列出你项目中有主函数main的类。选择主类后点Finish即可生成jar文件。在此说明一下,这种打包方法不能把项目中的外部的jar包打进来,应该是也要编写一些脚本语言,没往深研究。所以生成后的jar有些是不能执行的。13第二种方法是利用Eclipse的一个第三方插件fatjar生成jar文件,也是本人觉得最简单最方便的一种生成方式。先从网上下载些插件,解压后是一个plugins的文件夹,里面只有一个文件夹,我的是“netsffjepfatjar_0024”将它copy到Eclipserplugins文件夹下,此插件就安装成功了,重启Eclipse在项目上右击就会看到多出一个“BuildFatJar”在前面有个绿色的“+”号,这时你就可以用此插件打包你的项目了。进去后第一个界面Jar-Name里增入要生成的jar文件名,我的是“CAMP_fatjar”。在Main-Class后点Browse像Export一样它也会列出你项目中的主类,选择后其它默认即可,Next后会列出你要打包的所有内容,这个插件的优势就是可以将你项目中的外部jar也打进来,有三个选项,其中ExportANT是生成buildxml脚本文件,方便用户以后修改脚本,其它两个按钮没用。在这里什么都不点,直接点Finish就可以生成jar文件。2将jar打成exe文件:21虽然此时的jar文件已经可以执行了。生成exe的文件我也是用两种方法实现的,用到的打包工具是j2ewiz和exe4j,它们的不同会在我下面的介绍中体现出来。22首先是j2ewiz,这个软件是绿色的,不用安装,解压后可以直接运行,但这个软件生成的exe文件不是跨平台的。运行此程序首先就是输入要打包的jar文件,我们浏览JAR选择我们之前用fatjar生成的“CAMP_fatjar”项目文件(详见13),下面那个选项是提示用户最低要求的JRE版本,一般选13。下一步,因为我们的寝室管理系统是图形界面,所以在这里选“Windows窗口程序”下一步它也是自动生成要执行的主类,你只要选择就可以。下面的选框可以选择你启动程序显示的。下一步后这个窗可按个人喜好选择。下一步,如果你的程序还有什么依赖的外部jar文件,可以从这里加上,但因为之前的fatjar以经将我们项目所用的那三个连数据库的外部类打进CAMP_fatjar包里了,所以这里不用再添加。如果你之前是用Export打的jar包,那么这里就需要再把那个三个数据库的包加进来了(详见12)。下一步是添入要生成的exe文件名,再选一个程序图标就可以了,下一步后生成exe文件,点完成。双击生成的exe文件就能看到运行效果了,这种exe文件还没有脱离JDK环境,还不能跨平台使用,只能用于小组成员测试使用。23下面进入最关键的,如何打包跨平台的exe文件。用到的软件是exe4j,我用的是V40版的,此软件需要破解。安装后运行左窗窗口标有十步,其实打包过程也非常简单。第一步完全略过,直接点Next第二步我们选择“JARinEXEmode”就是选择我们已经有制作好的jar文件。第3步上面是项目名称,可随便填写,下面一个写出你想要将打包后的exe文件输出的目录我的是“桌面\project\”。第4步,由于我的演示程序是图形的,所以选第一个,如果你的程序是控制台的,则选择第二个,Executablename写你将要生成的exe文件的名字,IconFile可以选择生成文件的图标。第5步,先别管上面的,先在下面单击绿色的“+”号,在d出的窗口中点Archive,然后找到起初已经做好的CAMP_fatjar(详见13)文件,"OK"后返回,在下面的ClassPath里就出现jar文件路径后,再在上面MainClass栏内点击找到main所在的类。第6步,你系统的JRE版本,一般是填个13,下面填16在这里单击advancedoptions,选择searchsequence。选这个就是因为我们要把JDK环境也打包进来,好让程序能跨平台使用。首先要从你系统的JDK下的JRE目录copy到你exe文件的输出目录下“桌面\project\JRE”,然后回到exe4j中在d出窗口删除列表中的所有项。我的是三项,一个注册表的,一个JAVA环境变量的,一个JDK环境变量的,都不要。然后单击绿“+”,选择directory并选择JRE的根目录,我的是“桌面\project\JRE”就是copy后的目录,选完后exe4jd出窗口中的Directory里会显示“\JRE”。点OK关闭该窗口,返回exe4j的主窗口,你就可以看到刚加的路径。再从主窗口左侧窗口中单击advancedoptions,并选择preferredVM,在d出的窗口中选择clienthostspotVM,单击next按钮继续。7、8步是一些个性设置默认即可。第9步编译完后第10步你点那个“ClickHeretoStarttheApplication”按钮就可以看到程序运行效果了,然后再点”Seaveas”保存一个exe4j生成的一个文件,随便存哪里都行,和我们的exe程序无关。全部制作过程就完工了。

打包步骤如下:

MATLAB命令窗口输入deploytool,打开一个Eeployment Project的窗口:

1在Name输入你想要打包后的文件的名字;

2在Location输入你MATLAB当前的路径;

3在Target选择第一项Windows Standalone Application;

4确定后打开Depolyment Tool窗口,在窗口中有一个[Add main file],点击就可以增加你要转换的文件,最后点击Package即可。

在未安装matlab的电脑上使用步骤:

首先从安装matlab的电脑上拷贝两个文件:

1“MCRInstallerexe”(在matlab安装目录“:\Program Files\MATLAB\R2010b\toolbox\compiler\deploy\win32”下);

2在生成的安装包中拷贝exe,如:生成的包中“\zhytool\Untitled2\src”,找到Untitled2exe。

然后将这两个exe文件考到未装matlab的新电脑上:

1双击“MCRInstallerexe”,所有选项默认,直至完成安装;

2双击Untitled2exe,可以使用。

有一些apk 文件比较重要的,想直接打包到系统中,开机就能使用。网上百度了一下,只有说如何把apk文件打包到systemimg 里面,应该也是类似的。试试参考是否行。把第三方或自己开发的apk文件编译到系统文件(systemimg)中的方法: 1 (1)源码编译后,把apk拷贝到out\target\product\generic\system\app中。(2) 执行命令make snod , 把添加的spk编到systemimg 中 缺点:执行make clean 后,再次make 完毕需要重新执行上面 *** 作。 2 "方法一"的改进。 (1) 新建一个文件夹目录,用来存放apk文件mkdir packages/apps/Prebuilt_apps cd packages/apps/Prebuilt_apps 在Prebuilt_apps中新建make文件 vi Androidmk 并写入 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_POST_PROCESS_COMMAND := $(shell cp -r $(LOCAL_PATH)/apk $(TARGET_OUT)/app/) 保存退出。(2) 把需要编译的apk拷贝到目录Prebuilt_apps下,执行make ,Prebuilt_apps中的apk就会考被到out\target\product\generic\system\app中。(3) 执行make snod 。完成。 此方法执行make clean 后,再次make 完毕,只需要make snod即可(有时make后,out\target\product\generic\system\app没有需要添加的apk,此时再make一次即可,速度很快)。-----------------------感谢11楼提供的关于编译成功但无法运行问题的解决方法。解压apk,如其中lib(so)文件,把 so文件copy到system\lib下,再编译。本人在模拟器上直接加入angrybirdapk(愤怒的小鸟)编译,编译后无法运行。把libangrybirdsso拷贝到system\lib下,再编译后就可以运行。 触宝输入法apk使用此方法也可编译运行成功。--------------------使用mkyaffs2image工具,使上面的 *** 作更简单!把apk及相关文件(如so)拷贝到system的相应路径下,执行 mkyaffs2image -f direction/system systemimg,即可生成systemimg------------------------------------------------------------原文地址:/thread-58113-1-1html俺的师弟说用 make userdataimage-nodeps 这个,这几种方法我都试试。嘿嘿。等下来报告结果。晕,不行的这样。呵呵,压根没更新userdataimg执行make userdataimage-nodeps 后两分钟左右,终端就显示下面的信息,生成了out/target/product/generic/userdataimgTarget userdata fs image: out/target/product/generic/userdataimg我马上烧写到我的S5PV210 试试。菜鸟啊,菜鸟中前进。out/host/linux-x86/bin/mkyaffs2image -f out/target/product/smdkv210/data out/target/product/smdkv210/userdataimg——这个就可以了,不过的确存在愤怒的小鸟打包进去不能运行的问题,有些apk 文件打包进去就能运行。看来还是一些库的打包没处理好。原来是是这个android 系统被改的不成样子,用上述命令就可以顺利生成我们最新的userdataimg 了。android系统存在问题,导致下面的命令都无效。Android比较重要的三个img文件:make systemimage - systemimgmake userdataimage - userdataimgmake ramdisk - ramdiskimgPS:make snod - 快速打包systemimg

以上就是关于为什么打包的apk中反射不到R.java这个类全部的内容,包括:为什么打包的apk中反射不到R.java这个类、R语言绘制Nomogram并进行简单的美化处理、如何将文件打包成 exe等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9420027.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存