当前位置:   article > 正文

Android开发:Android Studio工具遇到的坑,以及解决办法_error retrieving capabilities from the device

error retrieving capabilities from the device

场景一

打开a s工程项目,报错:Could not find method android() for arguments

Error:(31, 0) Could not find method android() for arguments [build_4g5zqa4pkpj6q6qii8a22khzz$_run_closure2@7a96d128] on root project 'Mybaby' of type org.gradle.api.Project.
<a href="openFile:/Users/shixinshan/Development/ReactNativeProjects/Mybaby/android/build.gradle">Open File</a>
  • 1
  • 2

解决:

点击“Open File”–>注释掉,如下代码:

//android {
//    compileSdkVersion 25
//    buildToolsVersion '25.0.2'
//}
  • 1
  • 2
  • 3
  • 4

场景二

打开as项目,报错:No cached version of com.android.tools.build:gradle:2.2+ available for offline mode.

No cached version of com.android.tools.build:gradle:2.2+ available for offline mode.
  • 1

解决:

Preferences-->搜索“gradle”-->取消勾选的Offline Work, -->点击"Apply"-->AS会自动下载
  • 1
  • 2

场景三:

在编译as项目时候,报错:

D:\AndroidStudioProjects\\app\build\intermediates\res\merged\debug\values-ldltr-v21\values-ldltr-v21.xml
Error:(19) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Large.Inverse'.
Error:(32) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Small.Inverse'.
Error:(3) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Spinner.Underlined'.
Error:(3) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.Spinner.Underlined'.
Error:(176) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.AutoCompleteTextView'.
D:\AndroidStudioProjects\app\build\intermediates\res\merged\debug\values-v21\values-v21.xml
Error:(25) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Medium.Inverse'.
Error:(17) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Inverse'.
Error:(218) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ProgressBar.Horizontal'.
Error:(216) Error retrieving parent for item: No resource found that matches the given name 'android:Widget.Material.ProgressBar'.
。。。
。。。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

解决:

打开app目录下的build.gradle文件,查看里面的compileSdkVersion
和compile ‘com.android.support:’版本是不是对应的,如果不对应修改改成一样。比如:

apply plugin: 'com.android.application'
android {
    compileSdkVersion 19
    buildToolsVersion "25.0.2"

    defaultConfig {
        applicationId "com.smart.smartpadsdkdemo"
        minSdkVersion 14
        targetSdkVersion 19
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

    compileOptions {
        encoding "UTF-8"
    }
}

tasks.withType(JavaCompile) {
    options.encoding = "UTF-8"
}


dependencies {
    compile('com.github.tony19:logback-android-classic:1.1.1-6') {
        exclude group: 'com.google.android', module: 'android'
    }
    compile 'com.android.support:support-v4:19.1.0'
    compile 'com.google.code.gson:gson:2.2.4'
    compile 'com.android.support:appcompat-v7:19.1.0'
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

场景三

使用adb shell报错:

adb server is out of date.  killing
  • 1

解决方法:
原因可能是其它程序占用了5037端口导致的,
所以查看哪个程序占用了adb调试端口,然后结束掉它就行。
点击android studio工具下方的Terminal,输入下面三条指令

//查看使用5037端口有哪些应用占用
netstat -aon|findstr "5037"
//查看具体端口是那个应用占用
tasklist|findstr "5456"
//杀死xxxx端口的应用
taskkill /f /pid xxxx 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

如果上面的方法还是不行,继续下面步骤
cmd命令行输入adb devices

List of devices attached
  • 1

没有显示设备,说明电脑没有连接到手机设备
解决方法:下载豌豆荚软件,连接手机,让电脑能够连接到手机
再cmd命令行输入adb devices,显示如下结果,说明连接成功

List of devices attached
87209cd8c6a700000000    device
  • 1
  • 2

场景四

问题:打开Android Devices Monitor工具,发现Data目录打不开

分析:没有访问权限,普及一下, drwxrwx–x,这玩意是什么意思呢?
这9 个字符可以分为三组,

  • 第一组 rwx 表示所有者(user)对文件的访问权限,r 表示可读(read),w 表示可写(write),x 表示可被执行,- 表示没有该权限;
  • 第二组 rwx 表示组群(group)对文件的访问权限;
  • 第三组 –x 表示其他人(other)对文件的访问权限,可以看到,没有 r 和 w,说明 data 对其他人来说是不可读不可写的

如何修改Data目录的权限?

D:\AndroidStudioProjects\SmartTeachAttendance>adb shell
shell@astar-dvk3:/ $ su
su
shell@astar-dvk3:/ # chmod 777 /data
chmod 777 /data
shell@astar-dvk3:/ # chmod 777 /data/data
chmod 777 /data/data
shell@astar-dvk3:/ # chmod 777 /data/data/com.smart.teach
chmod 777 /data/data/com.smart.teach
shell@astar-dvk3:/ # chmod 777 /data/data/com.smart.teach/databases
chmod 777 /data/data/com.smart.teach/databases
shell@astar-dvk3:/ # chmod 777 /data/data/com.smart.teach/databases/*
chmod 777 /data/data/com.smart.teach/databases/*
shell@astar-dvk3:/ #
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • su 是获取 root 权限,只有 root 权限才能修改文件的访问权限。
  • chmod 777 是把对应的文件或文件夹的访问权限的后 9 位设置成 rwxrwxrwx
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/223190
推荐阅读
相关标签
  

闽ICP备14008679号