小编Par*_*mar的帖子

gradlew 使用错误的 Java 版本

我正在使用 Kotlin 开发 Android 应用程序。我正在通过命令行 ./gradlew klint 运行 kotlin linter。
但这给了我一个错误:

Gradle 4.4 需要 Java 7 或更高版本才能运行。您当前使用的是 Java 6。

当我检查项目结构时,我使用的是嵌入式JDK。
我还将 android studio 更新到了最新版本。我不知道如何将嵌入式JDK更新到最新版本。

java version

“1.6.0_65”Java(TM) SE 运行时环境(版本 1.6.0_65-b14-468) Java HotSpot(TM) 64 位服务器 VM(版本 20.65-b04-468,混合模式)

which java- /usr/bin/java

echo $PATH-/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/username/Library/Android/sdk/platform-tools

echo $JAVA_HOME- 空的

java macos android gradle

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

如何在达到一定距离后停止在Recycler视图中滑动项目

我在android中有一个Recycler View.我已经附上了ItemTouchHelper它.我只启用了从左到右的滑动.

因此,当我滑动Recycler视图的任何项目时,项目开始向右移动,在左侧我绘制文本.这可以 .我的要求是,我希望允许用户仅滑动到一定距离,当达到该距离并且用户松开触摸时,正在滑动的项目应该返回到其向左的位置.

问题是,当我从左向右滑动时,视图会完全滑出屏幕.如何限制它只能滑到一定距离?我该怎么做 ?

这是我的项目触摸回调的代码:

private void initSwipe(){
    ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT) {
            @Override
            public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
                return false;
            }

            @Override
            public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
                int position = viewHolder.getAdapterPosition();
            }

        @Override
        public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
            ViewHolder viewHolder1 = (ViewHolder)viewHolder;
            int position = viewHolder1.getAdapterPosition();
            MyItem item = dataList.get(position);
            if (item==null )return;
            if(actionState == …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview itemtouchhelper

7
推荐指数
1
解决办法
1525
查看次数

如何在Android媒体播放器中获得每次播放的回调

我正在使用Android媒体播放器在我的应用程序中播放视频.我希望在实际播放5秒后显示一个按钮来跳过视频.最初我展示了"5s跳过视频".然后,当播放器继续播放视频时,它将继续使用"跳过4s视频"等按钮更新按钮文本,依此类推.最后它将显示"Skip Video".

我不知道如何获得每一秒的回调.因为我不更新按钮文本,当播放器缓冲或播放器暂停时.

到目前为止我尝试过:

public void onBufferingUpdate(MediaPlayer mp, int percent) {
    // TODO Auto-generated method stub
    updateSkipButtonUI();

}
Run Code Online (Sandbox Code Playgroud)

但是,当我在某些设备上测试时,onBufferingUpdate方法会在播放器播放视频时每秒调用一次.但是在某些设备上,一旦缓冲百分比达到100%,它就不会被调用.

我也试过了

mMediaPlayer.setOnInfoListener(this);
    @Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
    // TODO Auto-generated method stub
    if(what == MediaPlayer.MEDIA_INFO_BUFFERING_START)
    {
        //Player started buffering. Player internally pauses . 
        stopTimerToUpdateSkipButton();
    }
    else if(what == MediaPlayer.MEDIA_INFO_BUFFERING_END)
    {
        // Buffering has ended . Content is ready to play.
        startTimerToUpdateSkipButton();
    }

    return what == MediaPlayer.MEDIA_INFO_BUFFERING_START || what == MediaPlayer.MEDIA_INFO_BUFFERING_END;
}
Run Code Online (Sandbox Code Playgroud)

但有时也会调用OnInfo方法.有时它不会被调用.

我不知道还有什么可以尝试的.请帮忙.

android android-mediaplayer

6
推荐指数
0
解决办法
372
查看次数

使用 OpenCSV 解析 csv 文件时没有找到类“java.beans.Introspector”

我正在使用 OpenCsv 为我的 android 应用程序解析 .csv 文件。我用 kotlin 编写代码。这是我的代码:

这就是我解析 csv 文件的方式:

val beans: List<csvDataClass> = CsvToBeanBuilder<csvDataClass>(FileReader(file))
            .withType(csvDataClass::class.java).build().parse()

    for (i:Int in 0..beans.size-1) {
        Log.d("Tag", " NAME = ${beans.get(i).name} Number = ${beans.get(i).phone_one_value}")
    }
Run Code Online (Sandbox Code Playgroud)

这是我要将 csv 数据转换为的对象类。

class csvDataClass {
@CsvBindByName (column = "Name")
var name:String = ""
@CsvBindByName (column = "Phone 1 - Value")
var phone_one_value:Int = 0

constructor() {}
constructor(name: String, phone_one_value: Int) {
    this.name = name
    this.phone_one_value = phone_one_value
}
Run Code Online (Sandbox Code Playgroud)

}

我在 build.gradle 文件中添加了这一行:

implementation 'com.opencsv:opencsv:4.1'
Run Code Online (Sandbox Code Playgroud)

这是我的 csv 文件内容: …

java csv android opencsv kotlin

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

我如何从 android 项目中的 jacoco 测试覆盖率报告中排除一个方法

我检查了 Jacoco github ans 浏览了一些 Stack Overflow 问题。原来 0.7.9 版本的 jacoco 过滤方法不支持注释,只支持整个类。现在 0.8.0 和 0.8.1 已经发布。是否在这些版本中添加了此功能?我检查了jacoco的更改历史记录。

https://github.com/jacoco/jacoco/releases

但是在最新版本中看不到与过滤相关的任何内容。但仍然想确认是否有人实现了这一点以及如何实现?

android jacoco android-gradle-plugin

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

如何使回收站视图滚动超过项目的高度

我有一个从屏幕顶部开始到屏幕底部的回收器视图。在屏幕底部还有一个视图,它隐藏了回收站视图的最后一项。

我希望回收器视图滚动更多一点,直到底部元素的顶部。所以最后一项可能是可见的。

我知道,就像我可以在回收站视图的列表末尾添加一些虚拟的空项目一样。但我不想打扰回收站视图中的项目数量。我应该调整回收器视图最后一项的高度,使其内容位于底部元素之上吗?

任何人都有更好的主意。最好的方法是什么?

android android-recyclerview

4
推荐指数
1
解决办法
1748
查看次数