我正在使用Google的支持设计库v25.1.0在Android应用中实现Bottom Navigation Bar.有没有办法添加阴影效果,与当前Android原生Google照片应用相同?
android android-support-library android-support-design android-bottomnav
我正在尝试将我的应用更新到Google Play商店.我将应用程序的当前版本号设置为2000000000,并希望将其更新为2000000001.请不要问我为什么选择了这样的版本号.
当我尝试推送新版本时收到此错误消息:"上传失败APK的版本代码很高,您可能无法更新APK." 我不明白的一件事是,根据官方谷歌文件,最大版本号是MAXINT,2147483647,所以我仍然有大约1.5亿个版本.另一件事是,我设法使用相同的版本编号约定更新其他应用程序,该应用程序位于相同的开发帐户,我根本没有这样的错误.
我几次检查所有数字,以确保我没有做一些愚蠢的错字.我也已经联系过谷歌支持,但也许有人在这里有某种解决方案?
我正在研究相当大的多模块Android项目,该项目使用Data Binding,Dagger 2和Java与Kotlin混合使用.
在项目"代码"文件(.java和.kt文件包括活动,自定义类等)稍有变化之后,构建时间很长(最多2分钟).即使我在添加新行等更改或修改注释中的一个字符时,也会发生这种情况.
我确实使用--info参数运行了Gradle脚本,得到了以下提示,它在以下任务中"挂起":
构建任务'的缓存键:AppName:kaptDebugKotlin'是1a3a53e5f9b0934ab50a25c0133055f2最新检查任务':AppName:kaptDebugKotlin'耗时0.0秒.它不是最新的,因为:输入属性'source'文件/Users/username/Android/project-directory/AppName/build/generated/source/dataBinding/debug/android/databinding/layouts/DataBindingInfo.java已更改.输入属性'source'文件/Users/username/Android/project-directory/AppName/src/main/java/com/package/to/my/activity/SomeActivity.java已更改.
DataBindingInfo.java是生成的文件,其中只包含buildId:
package android.databinding.layouts;
import android.databinding.BindingBuildInfo;
@BindingBuildInfo(buildId="23567c57-d3c8-4999-bc79-6211351c7d89")
public class DataBindingInfo {}
Run Code Online (Sandbox Code Playgroud)
每次代码中的任何更改时,buildId哈希都会更改.
该项目使用了Crashlytics,但我为调试版本禁用了它.
可能是这种行为的原因是什么?
编辑:即使Android Studio关闭,我正在项目中重新生成buildId,我正在外部编辑器中进行更改并从命令行运行构建.
android android-gradle-plugin android-databinding kapt android-gradle-3.0
当我从Android片段调用toast("Toast的消息文本")时,我遇到了以下错误:
java.lang.NoSuchMethodError:没有虚方法getActivity()Landroid/app/Activity; 在课堂上Landroid/support/v4/app/Fragment; 或其超类('android.support.v4.app.Fragment'的声明出现在name-of-the-files-classes.dex中)
我正在使用Anko v0.9.1和Kotlin 1.0.6
可能是造成这次事故的原因是什么?标准Android Toast工作得很好.toast()函数也可以在Activities中运行.
我目前正在测试 Android配套设备配对,但我不确定如何从REQUEST_COMPANION_RUN_IN_BACKGROUND权限中受益。
在 Google 文档的一部分中说:
设备配对后,设备可以利用 REQUEST_COMPANION_RUN_IN_BACKGROUND 和 REQUEST_COMPANION_USE_DATA_IN_BACKGROUND 权限从后台启动应用程序。例如,您可以使用这种配对设备的方法对支持 BLE 的智能手表进行初始配置。
在许可本身中:
允许配套应用在后台运行。
在CompanionDeviceManager文档中,它说:
如果您的应用需要从电池优化中排除(在后台运行)或具有不受限制的数据访问(在后台使用数据),您可以分别声明您使用 android.Manifest.permission#REQUEST_COMPANION_RUN_IN_BACKGROUND 和。
有人可以解释(或指向一些示例代码)如何利用此权限在后台运行应用程序?理想情况下,我想从配对的蓝牙 LE 外围设备触发配套应用程序中的操作。
android bluetooth-lowenergy android-bluetooth android-ble wear-os
我做了一个:
java.net.InetAddress serverAddr;
try {
serverAddr = java.net.InetAddress.getByName(Server.SERVERNAME);
}
catch (java.net.UnknownHostException exception) {
//System.err.println ("wrong server name !!!");
HelloWorldActivity.tv.setText("wrong server name !!!");
return;
}
Run Code Online (Sandbox Code Playgroud)
在我的Android应用程序中,但它永远不会重新解析主机名,它总是抛出一个异常,无论我使用什么名称.
但是在同一个模拟器上使用互联网,我已经添加了
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)
到AndoidManifest.xml
这是那些假设我没有的人的服务器类
public class Server
{
public static String SERVERNAME = "monster.idsoftware.com";
public static String SERVERIP = "209.85.129.99";
public static int SERVERPORT = 27950;
public static int PROTOCOL = 68;
}
Run Code Online (Sandbox Code Playgroud) 我在探索谷歌的Android架构组件.在我的项目中,我依赖于Services和IntentServices.从IntentService或Service 与app的ViewModel通信的正确方法是什么?使用LiveData可以实现吗?
android mvvm android-viewmodel android-architecture-components
我有以下课程:
class Person(val name: String) {
private var surname: String = "Unknown"
constructor(name: String, surname: String) : this(name) {
this.surname = surname
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我想在第二个构造函数中使用name参数不可变时:
constructor(val name: String, surname: String) : this(name) {
this.surname = surname
}
Run Code Online (Sandbox Code Playgroud)
我有以下编译时错误:
Kotlin:不允许在辅助构造函数参数上使用'val'
有人可以解释为什么Kotlin编译器不允许这样做?
有没有办法在 IntelliJ IDEA/Android Studio 中格式化长 Kotlin 注释,设置方式与 Java 注释相同:
代码样式 > Java > JavaDoc > 在右边距换行
当您打开此设置时,格式化后它会变成这样:
/**
* This is my very very very long comment which probably should be multi-line....
*/
Run Code Online (Sandbox Code Playgroud)
进入这个:
/**
* This is my very very very long comment
* which probably should be multi-line...
*/
Run Code Online (Sandbox Code Playgroud)
我没有看到 Kotlin 的相同选项,但也许还有另一种方法可以实现这一目标?
我正在开发依赖Jenkins CI的Android项目.所有签名密钥都存储在加密的gradle.properties文件中的单独存储库中.在项目存储库中,跟踪gradle.properties文件,并且(显然)不包含密钥.
以下是项目模块的示例build.gradle签名部分:
signingConfigs {
release {
keyAlias KEY_ALIAS
storeFile file(KEYSTORE_PATH)
storePassword KEYSTORE_PASSWORD
keyPassword MOBILE_KEY_PASSWORD
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何在我的本地开发机器上存储这些键,并且能够在不更改gradle.properties文件和修改构建文件的情况下构建项目?
android ×8
kotlin ×3
android-architecture-components ×1
android-ble ×1
anko ×1
apk ×1
comments ×1
constructor ×1
google-play ×1
gradle ×1
java ×1
javadoc ×1
jenkins ×1
kapt ×1
mvvm ×1
sockets ×1
toast ×1
wear-os ×1