Android Studio
1.下载Android studio时默认安装即可,不需要把AVD也装上
2.在添加第一个项目时,会报一个28.0.2的错误信息,由于安卓版本信息不同,会报不同的版本信息。意思就是SDK没有下载完全,去SDK Manager把对应的版本再在完全就好了,中途不要最小化窗口。
3.在创建AVD时,要创建x86的
4.在家里只要上面3步就可以运行Hello World了,但是在公司的电脑却报了一个错误 Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve junit:junit:4.12.。
解决办法就是这个https://bbs.csdn.net/topics/392293878?page=1#post-403538779里面有很多方法。本人用的是28楼的解决办法
5.安装Genymotion模拟器
- 下载并安装完Genymotion和VirtualBox
- 在Android Studio的`File->Settings->Pulgins里面搜索Genymotion,找到Genymotion项,右击,下载并安装。
- 重启Android Studio,如果在工具栏未显示Genymotion模拟器,则点击`View->ToolBar,然后就会显示了。
- 点击Genymotion选项,创建模拟器,需要登录。
- 注意,Genymotion里面只有安卓
6.当app运行时出现Activity class {} does not exist.Error while Launching activity.
- 用adb uninstall com.xx.xxx(包名)
- 但是要注意adb的路径如果没有添加到环境变量时,要使用绝对路径
android框架
1.TextView
- TextView.setText(),可以改变在xml文件中设置的值
- 参数中只能用字符串,用int也可以,但是这个int并不表示一个数据,而是一种标识。所以用int运行app会闪退。
- 可以用String.ValueOf(int)
2.出现read timed out
-
repositories { google() mavenCentral() maven{ url 'https://maven.google.com' } jcenter() }
两个repositories都是这样
3.在自己生成库的时候出现,undefined reference to '__android_log_print'
-
没有将日志库集成到我们自己的库
-
#include <Android/log.h>
-
target_link_libraries(my.lib ${log-lib})就可以了
4.Unknown failure (at android.os.Binder.execTransact(Binder.java:731))
5.needed by
Build command failed.
Error while executing process D:\AndroidSDK\cmake\3.6.4111459\bin\cmake.exe with arguments {--build E:\NK\AndroidProject\app\.externalNativeBuild\cmake\debug\arm64-v8a --target native-lib}
ninja: error: '../../../../build/intermediates/cmake/debug/obj/arm64-v8a/libmy-lib.so', needed by '../../../../build/intermediates/cmake/debug/obj/arm64-v8a/libnative-lib.so', missing and no known rule to make it
出现这个问题就表示链接时时候找不到对应架构的库
6.x86_64,x86,armeabi-v7a,arm64-v8a
WARNING: Targeted device ABI or comma-delimited ABIs [x86_64,x86] is not one of []. Nothing to build.
7.ABIs [x86_64,x86]
WARNING: ABIs [x86_64,x86] set by 'android.injected.build.abi' gradle flag contained 'X86' not targeted by this project.
还不知道怎么解决,此时我只添加了x86_64的库,可能是这个原因
8.Activity class {XXX}does not exist
Error: Activity class {com.example.jnitest3/com.example.jnitest3.MainActivity} does not exist.
9.System.loadLibrary()只能加载动态库
如果我们想要加载静态库,就必须先将静态库连接到动态库后才能使用。
并且,由于无法直接loadLibrary静态库,所以java中的native方法是无法和静态库中方法想关联的。
所以,实现native方法的源文件必须生成的是动态库,在该源文件中调用静态库的接口,实现整个流程。
持续更新中。。。