小编Jan*_*ski的帖子

Android底部导航栏带投影

我正在使用Google的支持设计库v25.1.0在Android应用中实现Bottom Navigation Bar.有没有办法添加阴影效果,与当前Android原生Google照片应用相同?

在此输入图像描述

android android-support-library android-support-design android-bottomnav

19
推荐指数
3
解决办法
2万
查看次数

Google Play开发者控制台错误:您的APK版本代码很高,您可能无法更新自己的APK

我正在尝试将我的应用更新到Google Play商店.我将应用程序的当前版本号设置为2000000000,并希望将其更新为2000000001.请不要问我为什么选择了这样的版本号.

在此输入图像描述

当我尝试推送新版本时收到此错误消息:"上传失败APK的版本代码很高,您可能无法更新APK." 我不明白的一件事是,根据官方谷歌文件,最大版本号是MAXINT,2147483647,所以我仍然有大约1.5亿个版本.另一件事是,我设法使用相同的版本编号约定更新其他应用程序,该应用程序位于相同的开发帐户,我根本没有这样的错误.

在此输入图像描述

我几次检查所有数字,以确保我没有做一些愚蠢的错字.我也已经联系过谷歌支持,但也许有人在这里有某种解决方案?

android apk google-play

12
推荐指数
2
解决办法
2354
查看次数

DataBindingInfo.java在每次代码更改时重新生成

我正在研究相当大的多模块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

10
推荐指数
1
解决办法
282
查看次数

从Fragment调用时,Anko toast()方法会导致java.lang.NoSuchMethodError

当我从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 toast kotlin android-toast anko

9
推荐指数
1
解决办法
3227
查看次数

Android 配套设备配对:如何使用 REQUEST_COMPANION_RUN_IN_BACKGROUND 权限?

我目前正在测试 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

8
推荐指数
1
解决办法
597
查看次数

Android上的InetAddress.getByName

我做了一个:

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)

java sockets android

7
推荐指数
2
解决办法
2万
查看次数

Android架构组件ViewModel - 与Service/IntentService的通信

我在探索谷歌的Android架构组件.在我的项目中,我依赖于ServicesIntentServices.从IntentService或Service 与app的ViewModel通信的正确方法是什么?使用LiveData可以实现吗?

android mvvm android-viewmodel android-architecture-components

6
推荐指数
1
解决办法
3329
查看次数

Kotlin:不允许在辅助构造函数参数上使用'val'

我有以下课程:

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编译器不允许这样做?

constructor kotlin

6
推荐指数
1
解决办法
2945
查看次数

IntelliJ/Android Studio 中的 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 的相同选项,但也许还有另一种方法可以实现这一目标?

comments javadoc intellij-idea kotlin android-studio

5
推荐指数
1
解决办法
1590
查看次数

Android Gradle keyAlias变量存储在单独的文件中

我正在开发依赖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 gradle jenkins android-studio android-gradle-plugin

5
推荐指数
1
解决办法
175
查看次数