我已将我的SDK更新到最新版本,但现在我收到了一个lint错误.
错误:animator类型的预期资源[ResourceType]
此行发生错误:
AnimatorInflater.loadAnimator(context, R.anim.right_slide_in)
Run Code Online (Sandbox Code Playgroud)
引用的资源/res/anim/right_slide_in.xml如下所示:
<?xml version="1.0" encoding="utf-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:valueTo="0"
android:valueFrom="1.0"
android:propertyName="xFraction"
android:valueType="floatType"
android:duration="450" />
Run Code Online (Sandbox Code Playgroud)
它以前总是奏效.有人可以解释为什么我会收到这个错误吗?
我注意到该指令matTooltip不适用于禁用按钮.我怎样才能实现它?
例:
<button mat-raised-button [disabled]="true" matTooltip="You cannot delete that">
<mat-icon>delete</mat-icon>
</button>
Run Code Online (Sandbox Code Playgroud)
对于启用的按钮,它可以完美运行:
<button mat-raised-button [disabled]="false" matTooltip="You cannot delete that">
<mat-icon>delete</mat-icon>
</button>
Run Code Online (Sandbox Code Playgroud) 我想使用rxjava在后台运行一个方法.我不关心结果.
void myHeavyMethod() { (...) }
Run Code Online (Sandbox Code Playgroud)
到目前为止,我唯一的解决方案是将返回类型修改为例如boolean.
boolean myHeavyMethod() { (...) return true; }
Run Code Online (Sandbox Code Playgroud)
然后我跑:
Completable.defer(() -> Completable.fromCallable(this::myHeavyMethod))
.subscribeOn(Schedulers.computation())
.subscribe(
() -> {},
throwable -> Log.e(TAG, throwable.getMessage(), throwable)
);
Run Code Online (Sandbox Code Playgroud)
有没有办法保持void返回类型?
我正在编写一门编程课程,其中我想逐步展示如何编写程序.我以为我可能会为此目的使用git.我们的想法是将每节课作为一个单独的分支,并随着课程的进行创建新的分支.

一切都很好,直到我发现我犯了错误lesson1.所以我去那里修理它.

现在问题出现了:我必须重新定义每个分支.所以:
git checkout lesson2
git rebase lesson1
Run Code Online (Sandbox Code Playgroud)
我每节课大约有20节课,所以每个错误都非常痛苦.有没有办法自动化它或至少让我更容易?
顺便说一句.我用来创建图像的工具可以在这里找到.
我在docker compose中有以下设置
nginx对于代理到frontend,backend并提供图片backend 端口8080上的应用程序(弹簧启动)frontend 端口4000上的应用程序(SSR节点)mysql 用于 backend前端可以相对快速地使用更新
docker-compose up -d --no-deps frontend
Run Code Online (Sandbox Code Playgroud)
不幸的是backend需要大约1分钟才能开始.
是否有一种简单的方法可以实现更低的停机时间而无需过多地更改当前设置?我喜欢它现在有多简单.
我会想象:
backend我对 rxJava 相当陌生,正在尝试自己的东西。如果我做得对,我想得到一些建议。
用例:在我的应用程序第一次运行时,在成功登录后,我必须下载几个字典并将其保存在本地数据库中,以便应用程序运行。用户必须等到下载过程完成。
当前解决方案:我正在使用带有 rxjava 适配器的改造 2 来获取数据。我使用zip operator将所有 Observable 捆绑成一个。在所有下载完成后,回调触发并开始保存到数据库中。
没有什么比一些代码更好的了:
Observable<List<OrderType>> orderTypesObservable = backendService.getOrderTypes();
Observable<List<OrderStatus>> orderStatusObservable = mockBackendService.getOrderStatuses();
Observable<List<Priority>> prioritiesObservable = backendService.getPriorities();
return Observable.zip(orderTypesObservable,
orderStatusObservable,
prioritiesObservable,
(orderTypes, orderStatuses, priorities) -> {
orderTypeDao.deleteAll();
orderTypeDao.insertInTx(orderTypes);
orderStatusDao.deleteAll();
orderStatusDao.insertInTx(orderStatuses);
priorityDao.deleteAll();
priorityDao.insertInTx(priorities);
return null;
});
Run Code Online (Sandbox Code Playgroud)
问题:
我应该使用 zip 运算符还是有更适合我的原因的运算符?
这样做似乎有点乱。这只是代码的一部分,我目前有 12 个字典要加载。有没有办法重构它?
我想在下载完成后立即插入单个字典数据,并有一个重试机制,下载失败。我怎样才能做到这一点?
我使用这个方法来获取NDK目录:
project.plugins.findPlugin('com.android.library').sdkHandler.getNdkFolder()
Run Code Online (Sandbox Code Playgroud)
更新com.android.tools.build:gradle到2.3该字段sdkHandler似乎已被删除重命名
错误:没有这样的属性:类的sdkHandler:com.android.build.gradle.LibraryPlugin
是否有另一种方法可以在库模块中获取NDK目录路径?
我正在努力使用JUnit运行配置.
模块B使用模块A.
我正在尝试在模块B中运行单元测试.我在模块B的 build.gradle中定义了一个依赖项
compile project(':moduleA')
Run Code Online (Sandbox Code Playgroud)
它在Android Studio中运行良好,但是当我想使用gradle命令行运行时:
gradlew :moduleB:testDebugUnitTest
Run Code Online (Sandbox Code Playgroud)
它会导致某些测试失败java.lang.NoClassDefFoundError,所以我猜它无法找到模块A中的类.我检查了/ build/intermediates/classes文件夹,编译后的类就在那里.我还尝试添加测试依赖项:
testCompile project(':moduleA')
Run Code Online (Sandbox Code Playgroud)
但它没有任何区别.我还尝试清理/重建并在两台机器上运行.使用gradle插件1.5和gradle 2.9和2.11构建.
这是我的第一个问题,所以让我们向右移动
我有一个高分辨率png格式的地图,该地图具有转角的地理坐标,我想将其与Android App中的Google Maps Api集成。
到目前为止,我所做的是:
我将地图切成256x256像素的图块,并写了一个URITileProvider。事实证明,地图具有偏移,倾斜且必须重新调整大小
我找到了MapTiler并进行了尝试。它允许设置拐角坐标并生成图块。当前的免费版本会产生水印,因此我也检查了以前的beta版本-但是在另一半球上放置了“ y”图块坐标。我当然可以尝试将它们映射,但是它不能解决我的倾斜问题
我还找到了Android应用和CustomMaps。太棒了!它几乎完全符合我的要求,只是它不会生成图块。有一个选项可以拍摄图像文件,通过从图像中选择点并将其链接到Google地图,将其放置在地图上。它还提供了一个很好的概述。
所以这是我的问题:
是否有一个免费工具,结合了MapTiler和CustomMaps两种功能,可以用来对齐我的图像以映射并将其拆分为有效的图块?
我曾考虑过通过反复试验的方法来编辑源图像,但这绝对不是解决之道。目前,我正在考虑创建自己的工具,但是从逻辑上来说,必须已经有了解决方案。
我是RxJava的新手并且在(我猜)简单问题上苦苦挣扎.我想在3个线程中处理订阅部分simuleasly.这就是我使用FixedThreadPool的原因.示例代码:
Observer.just("one", "two", "three", "four")
.observeOn(Schedulers.io())
.subscribeOn(Schedulers.from(Executors.newFixedThreadPool(3))
.subscribe(new Observer<String>() {
public void onNext(String string) {
Log.d(TAG, "Started: " + string);
SystemClock.sleep(1000);
Log.d(TAG, "Ended: " + string);
}
(...)
}
Run Code Online (Sandbox Code Playgroud)
预期结果:
Started: one
Started: two
Started: three
Ended: one
Started: four
Ended: two
Ended: three
Ended: four
Run Code Online (Sandbox Code Playgroud)
实际结果:
Started: one
Ended: one
Started: two
Ended: two
Started: three
Ended: three
Started: four
Ended: four
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我有一个Income对象列表.他们每个人都有一个type.我想把它们分组并总结一下这个amount领域.
对于这种情况:
Income income1 = new Income();
income1.setType(IncomeType.COMMON);
income1.setAmount(BigDecimal.valueOf(1000));
Income income2 = new Income();
income2.setType(IncomeType.COMMON);
income2.setAmount(BigDecimal.valueOf(2000));
Income income3 = new Income();
income3.setType(IncomeType.MARCIN);
income3.setAmount(BigDecimal.valueOf(100));
List<Income> incomes = Arrays.asList(income1, income2, income3);
Run Code Online (Sandbox Code Playgroud)
预期的输出将是一个Map<IncomeType, BigDecimal>包含两个元素的地图:
<COMMON, 3000>和<MARCIN, 100>
如何使用Java Stream API实现它?
更新到Android Studio 2.3后,尝试构建项目会导致构建失败.
任务':app:greendao'的执行失败.org.eclipse.jdt.internal.compiler.impl.CompilerOptions.versionToJdkLevel(Ljava /郎/对象;).J
如何解决这个问题?
我无法让BadgeDrawable正常工作。
使用它没有问题BottomNavigationView
navView.setupWithNavController(navController)
val badge = navView.getOrCreateBadge(R.id.navigation_home)
badge.number = 12
Run Code Online (Sandbox Code Playgroud)
但当我想在其他元素上使用它时,它不会显示。像这样:
val badgeDrawable = BadgeDrawable.create(context!!)
badgeDrawable.number = 32
BadgeUtils.attachBadgeDrawable(badgeDrawable, textView, root.findViewById(R.id.frame_layout))
Run Code Online (Sandbox Code Playgroud)
我使用 FrameLayout 只是因为这个问题修复似乎尚未发布。
布局:
<FrameLayout
android:id="@+id/frame_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/text_home"
android:src="@drawable/ic_home_black_24dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:textSize="20sp" />
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)
我正在使用最新的库版本:'com.google.android.material:material:1.2.0-rc01'
我尝试过不同的方法。但运气不好。难道这其中有什么我所遗漏的秘密吗?
这是该项目的 git 存储库(尽可能简单):https ://github.com/marcinkunert/badgeissue
android kotlin android-drawable android-studio material-components-android
android ×7
rx-java ×3
android-lint ×1
android-ndk ×1
angular ×1
docker ×1
git ×1
git-rebase ×1
google-maps ×1
gradle ×1
greendao ×1
java ×1
java-8 ×1
java-stream ×1
kotlin ×1
maptiler ×1
material-components-android ×1
rebase ×1
rx-android ×1
rx-java2 ×1