使用Kotlin为Android项目启用ProGuard时,Gradle构建失败,并显示以下错误:
警告:HomeChargerLocation:找不到引用的类kotlin.internal.annotations.AvoidUninitializedObjectCopyingCheck
警告:HomeChargerLocation $ Address:找不到引用的类kotlin.internal.annotations.AvoidUninitializedObjectCopyingCheck
警告:HomeChargerLocation $ Address $ Creator:找不到引用的类kotlin.internal.annotations.AvoidUninitializedObjectCopyingCheck
警告:HomeChargerLocation $ Car:找不到引用的类kotlin.internal.annotations.AvoidUninitializedObjectCopyingCheck
警告:HomeChargerLocation $ Car $ Creator:找不到引用的类kotlin.internal.annotations.AvoidUninitializedObjectCopyingCheck
警告:HomeChargerLocation $ Creator:找不到引用的类kotlin.internal.annotations.AvoidUninitializedObjectCopyingCheck
警告:处理任务java.io.IOException时发生异常:请先纠正上述警告.
相应的类:https://gist.github.com/makovkastar/cfa4bf1bea38556279f20eef46001cf8
我认为它与@ParcelizeKotlin实验包中的注释有关,因为当我们开始使用它时问题出现了.
更新:我在Kotlin bug跟踪器中创建了一个问题 - https://youtrack.jetbrains.com/issue/KT-21628
我正在尝试使用此集成指南将React Native集成到现有的Swift iOS应用程序中:https://facebook.github.io/react-native/docs/integration-with-existing-apps.html.React Native的版本是0.53.0.
我已经成功安装了所有必需的pod,现在尝试构建项目,但总是得到以下编译错误:
错误日志:
While building module 'yoga' imported from ...node_modules/react-native/React/Base/RCTConvert.h:19:
In file included from <module-includes>:1:
In file included from ...ios/Vandebron/Pods/Target Support Files/yoga/yoga-umbrella.h:15:
In file included from ...node_modules/react-native/ReactCommon/yoga/yoga/YGNode.h:13:
...node_modules/react-native/ReactCommon/yoga/yoga/Yoga-internal.h:11:10: fatal error: 'algorithm' file not found
#include <algorithm>
^~~~~~~~~~~
1 error generated.
In file included from ...node_modules/react-native/React/Views/RCTActivityIndicatorViewManager.m:10:
In file included from ...node_modules/react-native/React/Views/RCTActivityIndicatorViewManager.h:10:
In file included from ...node_modules/react-native/React/Views/RCTViewManager.h:13:
...node_modules/react-native/React/Base/RCTConvert.h:19:9: fatal error: could not build module 'yoga'
#import <yoga/Yoga.h
Run Code Online (Sandbox Code Playgroud) 数据绑定设置:
apply plugin: 'kotlin-kapt'
android {
dataBinding {
enabled = true
}
}
dependencies {
kapt "com.android.databinding:compiler:3.1.0"
}
Run Code Online (Sandbox Code Playgroud)
使用数据绑定的fragment类:
class LandingFragment : Fragment(), Injectable {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
val dataBinding = LandingFragmentBinding.inflate(inflater, container, false)
return dataBinding.root
}
}
Run Code Online (Sandbox Code Playgroud)
每次为此片段运行Espresso测试时,我都会遇到以下异常:
java.lang.NoClassDefFoundError: android.databinding.DataBinderMapperImpl
at android.databinding.DataBindingUtil.<clinit>(DataBindingUtil.java:32)
at com.sc.databinding.LandingFragmentBinding.inflate(LandingFragmentBinding.java:42)
at com.sc.ui.landing.LandingFragment.onCreateView(LandingFragment.kt:32)
...
Run Code Online (Sandbox Code Playgroud) 使用带有某些alpha(例如#99fe0038)的视图的背景颜色和API 21上的某些高程显示两个圆圈:一个用于视图本身,另一个用于内部:

通过代码设置高程和背景颜色:
view.setElevation(getResources().getDimensionPixelSize(R.dimen.fab_elevation_lollipop));
view.setBackgroundColor(Color.parseColor("#99fe0038"));
Run Code Online (Sandbox Code Playgroud)
没有设置高程或使用不透明的颜色,一切看起来都像预期的那样.
这是一个Android错误还是我错过了什么?
在我的开源库FloatingActioButton中,我需要以编程方式更改用户指定的视图边距.边距必须减少阴影大小(因此边距设置为按钮本身而不是阴影).
我重写了onLayout自定义视图类并使用以下代码:
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
if (!hasLollipopApi() && !mMarginsSet) {
if (getLayoutParams() instanceof ViewGroup.MarginLayoutParams) {
ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) getLayoutParams();
int leftMargin = lp.leftMargin - mShadowSize;
int topMargin = lp.topMargin - mShadowSize;
int rightMargin = lp.rightMargin - mShadowSize;
int bottomMargin = lp.bottomMargin - mShadowSize;
lp.setMargins(leftMargin, topMargin, rightMargin, bottomMargin);
setLayoutParams(lp);
mMarginsSet = true;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我在示例项目上测试它时,我发现第一次片段(ListView)上第一次应用了正确的边距.当我单击另一个选项卡时,会创建一个新片段(因此会创建完整的布局)并且FAB会移位(边距不会减少阴影大小):
正确的边距:

错误的利润:

即使我返回第一个标签页,FAB也会保留错误的边距.我试图调试并看到onLayout …
我在我的Android项目中使用FindBugs进行静态代码分析.设置如下:
quality.gradle
plugins.apply('findbugs')
task findbugs(type: FindBugs) {
ignoreFailures = false
effort = 'max'
reportLevel = 'high' // Report only high priority problems.
classes = files("${project.projectDir}/build/intermediates/classes")
source = fileTree('src/main/java')
classpath = files()
reports {
xml.enabled = true
html.enabled = false
}
excludeFilter = rootProject.file('quality/findbugs.xml')
}
Run Code Online (Sandbox Code Playgroud)
build.gradle:
subprojects {
afterEvaluate {
project.apply from: '../quality/quality.gradle'
tasks.findByName('findbugs').dependsOn('assemble')
tasks.findByName('check').dependsOn('findbugs')
}
}
Run Code Online (Sandbox Code Playgroud)
但是在我将Gradle Android插件从3.1.3升级到3.2.0后,构建开始失败:
./gradlew clean build
> Task :app:findbugs FAILED
No files to be analyzed
...
FAILURE: Build failed with an exception.
* What …Run Code Online (Sandbox Code Playgroud) 我已经注意到我的应用程序在华为手机的生产中有很多崩溃报告,这些报告与复数处理完全相关.没有其他手机有这个问题,只有华为.
所有复数形式都存在并在其他设备上正常工作.
似乎华为根本无法处理复数:
android.content.res.Resources$NotFoundException: Plural resource ID #0x7f060000 quantity=4 item=few
at android.content.res.Resources.getQuantityText(Resources.java:290)
at android.content.res.Resources.getQuantityString(Resources.java:397)
...
android.content.res.Resources$NotFoundException: Plural resource ID #0x7f060000 quantity=6 item=many
at android.content.res.Resources.getQuantityText(Resources.java:290)
at android.content.res.XResources.getQuantityText(XResources.java:667)
at android.content.res.Resources.getQuantityString(Resources.java:397)
...
Run Code Online (Sandbox Code Playgroud)
有人也有这个问题吗?
我正在使用新的XML字体功能,这是在Android 8.0 Oreo和支持库26.1.0中引入的.通过android:fontFamily在应用程序主题中设置属性来应用整个应用程序的默认字体系列:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
...
<item name="android:fontFamily">@font/proxima_nova</item>
</style>
Run Code Online (Sandbox Code Playgroud)
该字体已正确应用于应用程序中除工具栏之外的所有视图.所有工具栏都使用Roboto字体:
更新:问题似乎在支持库27.0.0中得到修复.我不能再复制它了.
我想创建一个 Espresso 测试来验证它SwipeRefreshLayout是否显示了刷新指标。我怎样才能做到这一点?
将Parse Android SDK升级到1.4.1版后,Twitter登录停止工作.当我尝试使用Twitter登录时:
ParseTwitterUtils.initialize(Constants.TWITTER_CONSUMER_KEY, Constants.TWITTER_CONSUMER_SECRET);
ParseTwitterUtils.logIn(activity, new LogInCallback() {
@Override
public void done(ParseUser parseUser, ParseException e) {
if (e == null) {
// Success
} else {
// Error
}
}
});
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Authentication error: Unable to respond to any of these challenges: {oauth=www-authenticate: OAuth realm="https://api.twitter.com"}
Run Code Online (Sandbox Code Playgroud)
我已经在Parse.com上问了一个问题,但也许你们知道问题是什么.提前致谢.
我正在尝试使用 绘制折线图canvas.drawLines(...),但似乎线条未正确连接。据我了解,使用Paint.setStrokeJoin应该使用斜接连接:
chartLinePaint = new Paint(Paint.ANTI_ALIAS_FLAG);
chartLinePaint.setStyle(Paint.Style.STROKE);
chartLinePaint.setStrokeJoin(Paint.Join.MITER);
chartLinePaint.setStrokeWidth(6.0f);
Run Code Online (Sandbox Code Playgroud)
如何解决此问题并使线条正确连接?