前几天用Ionic生成Android平台后在Android Studio中是可以运行的,好像也加入了自己的原生代码,但不知为何现在找不到代码了,重新加入却遇到各种问题,最终还是build成功,记录一下。
导入Android Studio后先修改AndroidManifest.xml 注意这里包名不能改,否则即便build成功运行也会报找不到class错误,我猜是因为 config.xml或者其他地方有 io.ionic.starter造成的,我不是专业开发Android,有很多地方小白。
其他Activity声明如果没在这个包下只好写完整像这样
<activity android:name="com.kecq.myinfo.MainActivity" />
然后把java文件夹和res文件夹复制到工程中,如果java 报R错误,先在AndroidManifest.xml 声明就可以了。
接着在Module:app 的build.gradle 中加入依赖,注意是根节点,之前就是加入到第二个红框导致问题,PhotoView引入2.0.0版本,最新版本报错,应该是gradle版本问题
根节点引入是会出现在下面的对话框中的,否则不会。
这个根节点下的红框代码也是新加的,目的是引入 PhotoView 组件
到此就完成了,在模拟器中运行通过。
现在又发现问题.......突然编译通不过,程序包R不存在, 要引入 io.ionic.starter.R 才行,总不能每个Activity 都去改吧,于是我又把程序中的config.xml 的
<widget id="com.kecq.myinfo"
替换了,还替换了android.json 当然AndroidManifest.xml也改了,结果发现还是报错Error: Activity class {io.ionic.starter/com.kecq.myinfo.IonicMainActivity} does not exist.
我就奇怪了,整个项目都搜索不到io.ionic.starter 到底是哪里来的........突然灵机一动,应该在顶层目录用 ionic 命令行编译次,果然查了下把config.xml 的widget改了 再运行ionic cordova run android
成功,回到Android Studio 中发现部分文件被替换,所以要小心操作。