你的activity 不是public 的
emulator -avd xx
一直报错:
PANIC: Missing emulator engine program for ‘x86’ CPU.
最终找到原因:
在创建虚拟机的时候,AS会默认推荐下载带Google APIs的x86 Images,由于大陆对google的限制,所以会导致报错。
解决办法,下载不带Google APIs的x86 Images, 然后再重启终端,重新输入命令,成功启动安卓虚拟机。
Here is solution in my case.
cd android
./gradlew clean
./gradlew build
or you can combine both commands with just ./gradlew clean build
(Thanks @daniel for the tip)PS: Delete gradle in case of all that steps don’t work
emulator -avd xx
一直报错:
PANIC: Missing emulator engine program for ‘x86’ CPU.
最终找到原因:
在创建虚拟机的时候,AS会默认推荐下载带Google APIs的x86 Images,由于大陆对google的限制,所以会导致报错。
解决办法,下载不带Google APIs的x86 Images, 然后再重启终端,重新输入命令,成功启动安卓虚拟机。
sdkmanger –list_installed不显示已安装的包,
原来是通scp命令从其他服务器拷贝的,导致文件损坏,去官网重新下载了sdk后解决
For me, this issue was an XRDP issue, fixed in CentOS 7.6 by editing /etc/xrdp/xrdp.ini and changing to max_bpp=24.
参考连接:
https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000675024-Blank-configuration-window-
avdmanager
是一种命令行工具,可让您通过命令行创建和管理 Android 虚拟设备 (AVD)。借助 AVD,您可以定义要在 Android 模拟器中模拟的 Android 手机、Wear OS 手表或 Android TV 设备的特性。
如果您使用 Android Studio,则无需使用此工具,而可以从 IDE 中创建和管理 AVD。
avdmanager
工具在 Android SDK Tools 软件包(25.3.0 及更高版本)中提供,并且可以在 android_sdk/tools/bin/
中找到。
创建新的 AVD。您必须为该 AVD 提供名称,并使用引号括住的 sdk_id(即 “sdk_id”)指定要用于该 AVD 的 SDK 软件包的 ID。例如,以下命令会使用 x86 系统映像(API 级别 25)创建一个名为 test
的 AVD:
1
|
avdmanager create avd –n test –k “system-images;android-28;google_apis;x86”
|
下面介绍了其他选项的用法:
-c {path|size}
:此 AVD 的 SD 卡映像的路径,或要为此 AVD 创建的新 SD 卡映像的大小(以 KB 或 MB 为单位,分别以 K
和 M
表示)。例如,-c path/to/sdcard/
或 -c 1000M
。-f
:强制创建 AVD。如果需要用同名的新 AVD 覆盖现有的 AVD,请使用此选项。-p path
:用于存放此 AVD 的文件的目录所在位置的路径。如果您未指定路径,则会在 ~/.android/avd/
中创建 AVD。如果你直接使用上面的语法创建模拟器肯定会报下面的错误:
Error: Package path is not valid. Valid system image paths are:ository…
null
原因是没有相应的软件包,按如下步骤来解决:
一:首先,您需要下载必要的软件包。为x86模拟器下载API 23软件包的示例:
1
|
./sdkmanager “system-images;android-28;google_apis;x86”
|
二:然后接受许可协议
1
|
./sdkmanager —licenses
|
三:然后创建您的模拟器
1
|
./avdmanager create avd –n test –k “system-images;android-28;google_apis;x86” –b x86 –c 100M –d 7 –f
|
更多命令
1
2
3
4
5
|
#查看已创建的模拟器列表
$ avdmanager list avd
#删除模拟器
$ avdmanager delete avd –n emulator_name
|
Warning: File /Users/root/.android/repositories.cfg could not be loaded.
文件不存在,创建即可:
1
|
touch ~/.android/repositories.cfg
|
问题描述
Flutter 应用在 Android 端上启动时会有一段很明显的白屏现象,白屏的时长由设备的性能决定,设备性能越差,白屏时间越长。
问题分析
其实启动白屏的问题在Android原生应用上也是一个常见问题,大致是因为从用户点击 Launcher Icon 到应用首页显示之间,Android 系统在完成应用的初始化工作,其流程如下:
在 Flutter Android 端上,白屏的问题会更加严重,因为除了 Android 应用启动耗时外,还增加了 Flutter 初始化耗时。
直到 Flutter 渲染出第一帧内容,用户才能感知到App启动完成。
解决方案
解决方案很简单,Android原生的白屏问题可以通过为 Launcher Activity 设置 windowBackground 解决,而 Flutter 也是基于此办法,同时优化了 Flutter 初始化阶段的白屏问题(覆盖一个launchView),只用两步设置便能解决 Flutter 中白屏问题。
在项目的 android/app/src/main/res/mipmap-xhdpi/ 目录下添加闪屏图片;
打开 android/app/src/main/res/drawable/launch_background.xml 文件,这个文件就是闪屏的背景文件,具体如何设置可以查阅 Android Drawable,我在 demo 中的设置如下:
<!– Modify this file to customize your launch splash screen —
<!– You can insert your own image assets here —
<item
android:bottom=”84dp”
<bitmap
android:src=”@mipmap/launch_image” /
</item
</layer-list
效果对比如下:
白屏
白屏优化
以上就是本文的全部内容,希望对大家的学习有所帮助。
Unable to find method ‘org.gradle.api.file.ProjectLayout.fileProperty(Lorg/gradle/api/provider/Provider;)Lorg/gradle/api/file/RegularFileProperty;’
org.gradle.api.file.ProjectLayout.fileProperty(Lorg/gradle/api/provider/Provider;)Lorg/gradle/api/file/RegularFileProperty;
Gradle’s dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
Re-download dependencies and sync project (requires network)
The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.
Stop Gradle build processes (requires restart)
Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.
In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.
gradle版本问题,项目中使用的gradle版本没有,下载的时候网络连接出现问题;
打开项目根目录下,把gradle版本修改成本地有的版本,然后反正别的项目中gradle/wrapper直接覆盖当前项目的gradle,然后Sync Project;
FAQ:
> Manifest merger failed with multiple errors, see logs
解决:
此问题产生原因大概有三个
# 第二,引入的三方包存在相同的label icon 等名字
解决:清单文件用tools
xmlns:tools="http://schemas.android.com/tools" 然后在application中用tools替代报错的节点,如:
<application
android:allowBackup="true"
android:label="@string/app_name"
tools:replace="label,allowBackup">
意思是如果merge manifest,就用别处的allowBackup和label值替换这里的。
Ref:
Android Studio使用心得 – 常见问题集锦 – 大熊的Android开发之旅 – 博客频道 – CSDN.NET
http://blog.csdn.net/codezjx/article/details/38669939
Manifest merger failed with multiple errors, see ? – 知乎
https://www.zhihu.com/question/36645628
Android Studio 多渠道打包遇到的问题总结 – 不正经啊不正经
https://my.oschina.net/u/1995545/blog/404535
android studio使用错误排查记录 – – 博客频道 – CSDN.NET
http://blog.csdn.net/wojiaopanpan/article/details/50151513
Manifest Merger – Android Studio Project Site
http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger