安卓开发常见问题

First Post:

Last Update:

Word Count:
1k

Read Time:
4 min

安卓开发常见问题大全

将.keystore 文件转成.key文件

首先我们要知道,用keytool和openssl不可能直接转换的,需要生成一个中间文件,这个就是.pfx。

下一个portecle密钥格式转换工具,转成.pfx就可以了。

方法一:打开openssl,运行命令

1
openssl pkcs12 -in <你设置的密钥名字>.pfx -nocerts -nodes -out <你设置的密钥名字>.key 

方法二:生成.pem中间文件,然后从pem中提取.ket
打开openssl,运行命令openssl pkcs12 -in <你设置的密钥名字>.pfx -out <你设置的密钥名字>.pem -nodes,就生成了.pem文件

再运行命令

1
openssl pkey -in wepicture.pem -out wepicture-key

ref: https://blog.csdn.net/xuliqin1989/article/details/41121405

App签名

1
keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000

会生成debug.keystore

查看签名

1
keytool -list -keystore  debug.keystore

ref: https://blog.csdn.net/sapce_fish/article/details/51636578

解决项目一直卡顿在下载Gradle页面

下载网址:http://services.gradle.org/distributions/

找到你需要的gradle的版本,在你项目的gradle\wrapper\gradle-wrapper文件下,打开

ref: https://blog.csdn.net/dong_junshuai/article/details/78485886

ref: https://blog.csdn.net/king_LFY/article/details/105286125

法2:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
2、配置环境变量

#详细配置方法到网上找
GRADLE_HOME = D:\develop\gradle-5.5.1
PATH=%GRADLE_HOME%\bin;后面不变
按照图示找到文件,把gradle-x.y.z-bin.zip地址指向你的位置

#Tue Jul 23 14:50:30 CST 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=file:///D:/SoftWare/gradle-4.1-all.zip
(上一行的file之后替换为你自己下载的gradle-**.zip的具体地址)

ref: https://blog.csdn.net/qq_40307919/article/details/107950755

Gradle是什么? 可参考: https://blog.csdn.net/xuwei_net/article/details/88787265

Android Studio 调试错误乱码问题解决方法

1:在安装目录的bin文件下,找到名为studio64.exe.vmoptions的文件,用记事本打开,编辑,在后面添加 -Dfile.encoding=UTF-8

2:遇到启动不了问题,生成的文件在这个地方,“C:\Users\Administrator\AppData\Roaming\Google\AndroidStudio4.1\studio64.exe.vmoptions”;删掉就可以了

ref: https://blog.csdn.net/amaoatao/article/details/121455913

类是公共的 应该在 java中声明…

Java入门-类HelloWorld是公共的,应在名为HelloWorld.java的文件中声明, 将文件名称与类名一样就行了。

尝试使用FileProvider构建android项目时,获取“错误:包androidx.core.content不存在”

基于https://developer.android.com/jetpack/androidx/migrate,在gradle.properties中添加了以下内容

1
2
android.useAndroidX=true
android.enableJetifier=true

将以下内容添加到我的清单中

1
2
3
4
5
6
7
8
9
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.example.android.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"></meta-data>
</provider>

导入如下所示

1
import androidx.core.content.FileProvider;

尝试过再次清理和构建我的项目,并且尝试过在androidstudio中取消缓存并重新启动。这个问题只发生在我添加FileProvider导入之后。

通过在build.gradle中添加以下内容,似乎可以解决这个问题。

1
2
3
4
5
allprojects {
repositories {
google()
}
}

ref: https://www.5axxw.com/questions/content/l0fcn4

安卓请求网页报错:net:ERR_CLEARTEXT_NOT_PERMITTED 解决办法

方法一:

首先试一下把 “http://“ 改成 “https://“

方法二:

创建文件:res/xml/network_security_config.xml

1
2
3
4
5
6
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">api.example.com(to be adjusted)</domain>
</domain-config>
</network-security-config>

对AndroidManifest.xml文件做修改:

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
<uses-permission android:name="android.permission.INTERNET" />
<application
...
android:networkSecurityConfig="@xml/network_security_config"
...>
...
</application>
</manifest>

方法三:

在AndroidManifest.xml文件中添加

1
android:usesCleartextTraffic="true"

就像这样:

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
<uses-permission android:name="android.permission.INTERNET" />
<application
...
android:usesCleartextTraffic="true"
...>
...
</application>
</manifest>

方法四:

如果在**<manifest>**中有**android:targetSandboxVersion**,把它减少为1

AndroidManifest.xml:

1
2
3
4
<?xml version="1.0" encoding="utf-8"?>
<manifest android:targetSandboxVersion="1">
<uses-permission android:name="android.permission.INTERNET" />
...
打赏点小钱
支付宝 | Alipay
微信 | WeChat