Android 诸多问题汇总

440 阅读2分钟

没有用了targetSdk 29以上使用1、2方法都不行(直接去改targetSdk的版本1、2可以忽略,找到新的方法时在更)

添加读写权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

1、权限申请

if (Build.VERSION.SDK_INT >= 23) {
    int REQUEST_CODE_PERMISSION_STORAGE = 100;
    String[] permissions = {
            Manifest.permission.READ_EXTERNAL_STORAGE,
            Manifest.permission.WRITE_EXTERNAL_STORAGE
    };

    for (String str : permissions) {
        if (this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {
            this.requestPermissions(permissions, REQUEST_CODE_PERMISSION_STORAGE);
            return;
        }
    }

亲测,效果不佳(只是对我现在的项目没用哈,也是可以一试的)

2、清单文件中添加代码

android:requestLegacyExternalStorage="true"

图片.png 亲测,也不太行(只是对我现在的项目没用哈,也是可以一试的) 3、修改版本

minSdk 21
targetSdk 29

图片.png

亲测,主要是把targetsdk版本修改到29。(这个可以解决,注意版本,加油各位!)

适配器绑定问题+混淆 在gradle.properties里

android.enableJetifier=true   

BaseViewHolder 报错适配

implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.40'

maven { url "https://jitpack.io" }
maven { url 'https://jcenter.bintray.com' }

gradle下载超时问题 修改gradle-wrapper.properties 在gradle-wrapper.properties里

//这是国外版本(注释掉然后保留最后---gradle-7.2-bin.zip---,把前边的部分代码换掉,如下)
#distributionUrl=https://services.gradle.org/distributions/gradle-7.2-bin.zip
//这是国内腾讯云的版本
distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-7.2-bin.zip

You need to use a Theme.AppCompat theme (or descendant) with this activity.

清单文件中将运行的activity添加该行代码

android:theme="@style/Theme.AppCompat.Light.NoActionBar"

Android中获取文件路径的方法:

  1. 使用Context.getFilesDir()方法: 该方法返回的是一个File对象,它指向应用的私有文件目录,比如/data/data//files,可以通过该方法获取到应用的文件路径。 代码示例:
String filePath = getApplicationContext().getFilesDir().getAbsolutePath();
  1. 使用Context.getExternalFilesDir()方法: 该方法返回的也是一个File对象,它指向应用的外部存储文件目录,比如/sdcard/Android/data//files,可以通过该方法获取到应用的文件路径。 代码示例:
String filePath = getApplicationContext().getExternalFilesDir(null).getAbsolutePath();
  1. 使用Environment.getExternalStorageDirectory()方法: 该方法返回的是一个File对象,它指向手机存储根目录,比如/sdcard,可以通过该方法获取到手机存储根目录的文件路径。 代码示例:
String filePath = Environment.getExternalStorageDirectory().getAbsolutePath();
  1. ndroid studio上开发APP之后,找不到应用图标,但是手机管家显示已经安装
<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <data android:mimeType="application/pdf" />
    <data android:mimeType="image/*" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

在清单文件中修改intent-filter的内容,将里边的内容分开

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
    <data android:mimeType="application/pdf" />
    <data android:mimeType="image/*" />
</intent-filter>
  1. Android读取配置文件为空

创建asstes文件夹与java/res同级,在这个目录下右击-new-Resource Bundle 填写文件名appConfig

图片.png

在这个文件里配置文件信息也就是需要的key-value 如下图 图片.png

读取配置文件 图片.png

  1. 待续