记录安卓学习遇到的坑

Android Studio

1.下载Android studio时默认安装即可,不需要把AVD也装上

 

2.在添加第一个项目时,会报一个28.0.2的错误信息,由于安卓版本信息不同,会报不同的版本信息。意思就是SDK没有下载完全,去SDK Manager把对应的版本再在完全就好了,中途不要最小化窗口。最好是,安装完完整的SDK后,放弃你的第一个Application项目。自己重新建立一个新的项目。

 

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模拟器

  1. 下载并安装完Genymotion和VirtualBox
  2. 在Android Studio的`File->Settings->Pulgins里面搜索Genymotion,找到Genymotion项,右击,下载并安装。
  3. 重启Android Studio,如果在工具栏未显示Genymotion模拟器,则点击`View->ToolBar,然后就会显示了。
  4. 点击Genymotion选项,创建模拟器,需要登录。
  5. 注意,Genymotion里面只有安卓

 

6.当app运行时出现Activity class {} does not exist.Error while Launching activity.

  1. 在命令行中用adb uninstall com.xx.xxx(包名)
  2. 但是要注意adb的路径如果没有添加到环境变量时,要使用绝对路径

 


android框架

1.TextView

  1. TextView.setText(),可以改变在xml文件中设置的值
  2. 参数中只能用字符串,用int也可以,但是这个int并不表示一个数据,而是一种标识。所以用int运行app会闪退。
  3. 可以用String.ValueOf(int)

 

2.出现read timed out

  1. repositories {
            google()
            mavenCentral()
            maven{
                url 'https://maven.google.com'
            }
            jcenter()
        }

    两个repositories都是这样

 

3.在自己生成库的时候出现,undefined reference to '__android_log_print'

  1. 没有将日志库集成到我们自己的库

  2. #include

  3. target_link_libraries(my.lib ${log-lib})就可以了

 

4.Unknown failure (at android.os.Binder.execTransact(Binder.java:731))

  1. https://blog.csdn.net/lplj717/article/details/77991365

 

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

出现这个问题就表示链接时时候找不到对应架构的库
记录安卓学习遇到的坑_第1张图片

 

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.

记录安卓学习遇到的坑_第2张图片

 

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.

记录安卓学习遇到的坑_第3张图片

 

9.System.loadLibrary()只能加载动态库

如果我们想要加载静态库,就必须先将静态库连接到动态库后才能使用。

并且,由于无法直接loadLibrary静态库,所以java中的native方法是无法和静态库中方法想关联的。

所以,实现native方法的源文件必须生成的是动态库,在该源文件中调用静态库的接口,实现整个流程。

 

10.在自己编译一个.c文件并将它生成库时,放入android studio使用,在连接时会找不到函数,因为c和c++的命名规则不一样。只要单纯的把后缀名.c换成.cpp就可以了,或者在.c文件中加上extern "C"。

 

持续更新中。。。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(android)