记录安卓学习遇到的坑

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

  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 <Android/log.h>

  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

出现这个问题就表示链接时时候找不到对应架构的库

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方法的源文件必须生成的是动态库,在该源文件中调用静态库的接口,实现整个流程。

持续更新中。。。

猜你喜欢

转载自blog.csdn.net/qq_34759481/article/details/83573368
今日推荐