引言
好多年前进行过基于java的Android开发,并且搭建了基于可见光通信的室内定位APP,最近看了一下原来的project,发现有不少可以改进的空间。当然~以前学习的基于Android的开发也基本忘光光了hhh,为此,写下本博客记录本人重新搭建的过程。本博客仅供本人学习记录用~
下面为本project的实测效果,从视频可以看到VLP和PDR locating相互切换显示当然使用的定位方法:
打开并配置项目
android有一个很烦人的点就是版本之间差距较大,且不兼容,导致不同版本之间代码兼容很容易出问题,一个常见的例子就是几年前自己开发的app,几年后再用竟然配置不了。。。因此,先对项目进行适配
- 过程可参考之前的博客
debug记录
出现报错Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7
应该是使用的jdk版本不一样,换成电脑中安装好的即可了~
- 首先File——>Setting——>Build Tools——>Gradle,看到我们的Gradle JDK路径。

改成安装好的

然后重新同步项目
出现报错Possible solution: - Upgrade Gradle wrapper to 7.2 version and re-import the project
- 尝试直接点击升级看看效果如何~
出现报错Unable to make field private final java.lang.String java.io.File.path accessible: module java.base does not "opens java.io" to unnamed module @370a761d
- 这应该是属于运行报错不是配置报错(因为是在我build app的时候出现的)
- 在\AndroidStudioProjects\VLP_PDR\gradle.properties中添加(注意原本的org.gradle.jvmargs要注释掉),添加后同步一下~
#JDK为了方便兼容原来没有使用模块化的项目,提高了一些配置 org.gradle.jvmargs=-Xmx1536M \ --add-exports=java.base/sun.nio.ch=ALL-UNNAMED \ --add-opens=java.base/java.lang=ALL-UNNAMED \ --add-opens=java.base/java.lang.reflect=ALL-UNNAMED \ --add-opens=java.base/java.io=ALL-UNNAMED \ --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED\ --Xmx2048m -Dfile.encoding=UTF-8
出现报错Execution failed for task ':opencv430:compileDebugJavaWithJavac'.
- 关于这个报错没有认真去查,把
\AndroidStudioProjects\VLP_PDR\gradle.properties
中的设置为classpath "com.android.tools.build:gradle:4.2.2"
- 然后再把
\AndroidStudioProjects\VLP_PDR\app\build.gradle
中的设置改为如下:compileSdkVersion 30 buildToolsVersion "30.0.2" ndkVersion '22.1.7171670'
- 即可解决这个错误(我个人认为是跟opencv编译过程相关的吧~)
针对运行按钮不出来的解决方案
打开一个旧的项目,有时可能出现如下图所示的运行按钮没有显示的情况:

点击图中的Add Configuration,点+号,并选择Android App选项



更改名字为app然后点击确定和应用,此时还是有个叉号的

然后点击搜索框,并找sync(sync project with gradles files)


但是似乎没有效果,并且重新打开也是一样的~~~
接下来尝试打开\app\guangxun\build.gradle
确保存在:
apply plugin: 'com.android.application'
如果不存在,那么大概率就是当前目录并不是构建的安卓app目录,注意切换即可~
push代码到Github
- 首先在setting中配置github

- 依次点击菜单中的“VCS” -> “Import into Version Control” -> “Share Project on GitHub”
- 若在某些地区,可能会链接不上。那么可以改为用Termainal命令也行~
# 初始化github仓库(注意windows和ubuntu中命令稍有不一样)
rm -r ./git
git init
git add .
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:KwanWaiPang/Your_project_name.git
git push -u origin main

关于代码的一些基本操作
主要的代码目录
C:\Users\gwpsc\AndroidStudioProjects\VLP_PDR\app\src\main\java\com\example\pdr_vlp_demo\MainActivity.java
main activity可以理解为代码主函数入口- 其中onCreate应该就是正式运行这个activity的入口代码那
- 整个页面样式的设计在:
C:\Users\gwpsc\AndroidStudioProjects\VLP_PDR\app\src\main\res\layout\activity_main.xml
- 曝光度的设置在
C:\Users\gwpsc\AndroidStudioProjects\VLP_PDR\app\src\main\java\com\example\pdr_vlp_demo\Camera2\Camera2.java