安卓学习及课程设计踩坑记录

156 阅读2分钟

一、基础使用

1. 谷歌Play的虚拟机在读数据库文件时会读不到

解决:换个不是Play商店的AVD虚拟机即可。

2. 安卓读写文件相关

解决:raw,assert文件夹下的文件只读不可写,使用读写流操作内部存储时,可以在 /data/data/com.example.guang/files/ 下找到自己的文件。

3. 内容提供器,访问方应用需要加权限声明的

<uses-permission android:name="DatabaseProvider._READ_PERMISSION" />
<uses-permission android:name="DatabaseProvider._WRITE_PERMISSION" />

<queries>
    <package android:name="com.example.guang" />
</queries>

4. 小白神坑

问题:找不到包了,listview.setAdpter方法用不了

错误代码:Inconvertible types; cannot cast 'android.view.View' to 'com.example.project2.ListView'

image.png 解决:注意自定义的类别跟系统的重,将DIY的类改为其他名。

4.在阅读郭霖的第一行代码时实现下载功能

问题:Android Studio之library工程中不能使用switch-case语句访问资源ID

解决: Android Studio之library工程中不能使用switch-case语句访问资源ID_casual_clover的博客-CSDN博客

二、项目踩坑

项目地址:gitee.com/tinyMoustac…

1. ImageView修改corner-radius

解决:Android ImageView 圆角实现 - 掘金 (juejin.cn)

我使用了CardView,完美解决

2 . 清楚对话框默认内边距

问题描述: 我设置的对话框周边总是有透明边距导致不能全屏显示。

解决:手把手带你玩转 DialogFragment - 掘金 (juejin.cn)

3. 导入开源项目需要修改的配置

问题描述: 在学习中需要导入运行别人的开源项目,但环境可能不同,因此时常build,或者run失败,以下为修改配置的步骤

  • 需要改的文件

image.png

  • 具体文件(建议新建个新项目,照着改)
compileSdkVersion 33        //改为本地版本
buildToolsVersion '33.0.1'  //改为本地版本,这个都可以再sdk manager中看,选择其中一个buildtool

defaultConfig {
 namespace "com.xwrl.mvvm.demo"
    applicationId "com.xwrl.mvvm.demo"
    minSdkVersion 26
    targetSdkVersion 33    //改为本地版本
    versionCode 1
    versionName "1.0.0"

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
    id 'com.android.application' version '8.1.1' apply false  //版本与新建项目一致
}
sdk.dir=C:\Users\zhangmingyu\AppData\Local\Android\Sdk       //写本地Sdk路径,建议与新建项目的一致
#Wed Nov 17 20:47:21 CST 2021
distributionBase=GRADLE_USER_HOME
distributionUrl=https://services.gradle.org/distributions/gradle-8.0-bin.zip  //与gradle版本一致
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
pluginManagement {
    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        maven { setUrl("https://maven.aliyun.com/nexus/content/repositories/google") }  //用阿里镜像,下载快
        maven { setUrl("https://maven.aliyun.com/repository/public") }
        maven { setUrl("https://maven.aliyun.com/nexus/content/repositories/jcenter") }
        google()
        mavenCentral()
    }
}

rootProject.name = "Demo"
include ':app'

4. ( 神坑 )Installation did not succeed. The application could not be installed.

问题描述: build 成功,但是intall失败

解决:因为安卓Studio自带了instant run功能,以快速发布应用,类似于缓存,因此清理一下就好了。

image.png

5. 安卓webview无法打开网址

解决:(成功解决)网页无法打开位于http://www.baidu.com/的网页无法加载,因为:net:ERR_NAME_NOT_RESOLVED-CSDN博客

6. sdk34打开sdk33项目,谷歌浏览器闪退

解决:模拟机改为sdk32。

7. app inspection不能监听雷电模拟器的数据库

解决:改用自带的虚拟机