当前位置: 首页 > 知识库问答 >
问题:

PrimitiveIterator在Android中不使用API脱糖

秋和雅
2023-03-14

我试图在我的代码中使用PrimitiveIterator.Ofint、PrimitiveIterator.Oflong等。我的最小SDK版本是16,因此为了获得对Java8类和接口的支持,我遵循了如下所示的API desugaring步骤:

https://developer.android.com/studio/write/java8-support#Library-desugaring

defaultConfig{
    multiDexEnabled true
}

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
        coreLibraryDesugaringEnabled true
    }

dependecies{
        implementation "androidx.multidex:multidex:$multidex_version"
        coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
}

在这之后,我可以使用像“java.util.instant”、“java.util.Stream”这样的类,但仍然不能使用PrimitiveIterator接口。它仍然要求为API版本24添加注释。

这里还显示了对所需接口的支持,但似乎没有。https://developer.android.com/studio/write/java8-support-table

共有1个答案

侯博易
2023-03-14

这很可能是一个皮毛问题。

我在使用API16映像的虚拟设备和运行在Android5.1(API22)上的Wiko Lenny2上运行了下面的测试。在这两种情况下,当CorelibraryDesugaringEnabled被设置为true时,测试成功;当CorelibraryDesugaringEnabled被设置为false时,测试给出ClassNotFoundException

所以我想说,标记Lint在@suppresslint(“newapi”)中有问题的语句,就完成了。

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;

import java.util.PrimitiveIterator;

import androidx.test.ext.junit.runners.AndroidJUnit4;

@RunWith(AndroidJUnit4.class)
public class PrimitiveIteratorTest {

    PrimitiveIterator.OfInt intIterator;

    @Before
    public void setUpIterator() {
        intIterator = new PrimitiveIterator.OfInt() {

            final int[] intArray = {1,2,3,4,5,6,7,8,9,10};
            int index = -1;

            @Override
            public int nextInt() {
                return intArray[++index];
            }

            @Override
            public boolean hasNext() {
                return index < intArray.length - 1;
            }
        };
    }

    @Test
    public void primitiveIteratorTest(){

        int first = intIterator.nextInt();
        int second = intIterator.nextInt();

        assert(first == 1);
        assert(second == 2);
        assert(intIterator.hasNext());
    }
}
 类似资料:
  • 有人能帮我吗? 我正在开发一个通过RecognizerIntent进行语音识别的应用程序。 哪一个Android版本正式带来了API对应用程序的离线识别?有什么声明吗 据我所知,如果语音识别将通过在线服务或离线词典完成,开发人员无法选择。我说得对吗?或者是否有任何记录在案的API可以脱机设置 谢谢

  • 有没有办法使用谷歌地图API在Android应用程序中使用离线模式? 教程或源代码的任何方向都将是一个巨大的帮助。我找了几个小时都没有运气。我知道谷歌已经发布了一种离线使用地图的方式,但是Android开发者可以使用吗?

  • 我正在将我们的DAO从使用Hibernate Criteria API迁移到JPA Criteria API。我有一个包含多个的类: 在查询中,我使用的是JoinType。左键以消除默认生成的交叉连接: 我得到了正确的结果,所有的A和B记录都得到了正确的检索。然而,在迁移之后,我遇到了一个问题:尽管在生成的查询中使用了左外连接,但所有的记录都是逐个检索的。以前(使用Hibernate Criter

  • 问题内容: 我正在使用Facebook开发人员指南为Android使用Facebook API。我能够为Android的Facebook API实现登录。我想实现注销功能。我尝试按照开发人员指南进行操作,但是不知道我必须在哪个位置实施。如果您能帮助我,下面将提供代码,我将不胜感激。 问题答案: 要么 在Facebook SDK Facebook.java中-

  • 我已经尝试过使用URLSearchParams,但仍然无法使其工作。 谢了。

  • 我的代码 但我得到以下错误: