我正在尝试在我的项目中使用java 8,为此我添加了jack编译器.
启用插孔后,我开始遇到使用注释处理的库的问题,并在Web上查看我读到需要android studio 2.2和com.android.tools.build:gradle:2.2.0-alpha6来编译从注释生成代码的库.
我下载Android Studio 2.2预览版6并将我的项目转换为它.之后我发现不再支持apt gradle插件,然后我需要将使用apt的每个依赖项更改为使用新的annotationProcessor选项.
例如:
apt "org.projectlombok:lombok:$rootProject.lombokVersion"
Run Code Online (Sandbox Code Playgroud)
至
annotationProcessor "org.projectlombok:lombok:$rootProject.lombokVersion"
Run Code Online (Sandbox Code Playgroud)
现在,如果我使用"make project",项目编译没有问题,但如果我尝试执行它,我的代码应该由注释生成错误.
此外,当我打开项目时,我收到来自lombok插件的警告"注释处理似乎已禁用该项目".当我打开项目设置并转到"构建 - >编译器"时,我找不到注释处理器.
所以,我的问题是:如何在Android Studio 2.2中启用注释处理器?此功能已被禁用?如果是,我如何从注释中生成代码?
--EDIT--我正在制作一个PullRequest来改变用Java8编译的项目,你可以在这里查看PR:https://github.com/jonathanrz/myexpenses-android/pull/57
我实现了一个递归使用anko的apply函数:
fun applyTemplateViewStyles(view: View) {
when(view) {
is EditText, TextView -> {
....
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,说"函数调用'TextView(...)'期望"
既然我可以写一个像0,1这样的子句,为什么我不能用Android视图做同样的事情?
将项目升级到AndroidStudio 3.0-beta1后,androidTest文件停止编译。
找不到很多软件包,其中一些是:
错误:程序包android.support.annotation不存在
错误:找不到符号类StringRes
错误:无法访问
android.support.v7.app.AppCompatActivity的AppCompatActivity 类文件
我已经加了
androidTestCompile "com.android.support:support-annotations:25.3.1"
Run Code Online (Sandbox Code Playgroud)
进入build.gradle
但是即使这样,我仍然没有找到错误的包。我尝试从Android Studio内部和终端运行测试./gradlew connectedCheck
android android-testing android-studio gradle-android-test-plugi android-studio-3.0
我有一个tableLayout有两列和两行,两行和最后一列都有match_parent的宽度,但布局没有填充父宽度,它像自己的wrap_content一样自我组合.
这是代码:
<TableLayout android:layout_width="match_parent">
<TableRow android:layout_width="match_parent">
<TextView
android:layout_width="wrap_content"
android:text="static" />
<EditText
android:layout_width="match_parent"
android:text="text" />
</TableRow>
<TableRow android:layout_width="match_parent">
<TextView
android:layout_width="wrap_content"
android:text="static2" />
<EditText
android:layout_width="match_parent"
android:text="text2" />
</TableRow>
</TableLayout>
Run Code Online (Sandbox Code Playgroud)
对于具有父级宽度的每一行,我需要做什么?
Ps:我工作的地方不允许我发布我的代码,所以我编写了尽可能接近我的代码的代码.我不知道它是不对的,我无法测试.
我有一个从DialogFragment派生的自定义对话框.
当用户单击确定按钮时,我需要保存屏幕上的信息.
所以我使我的PositiveButton调用dismiss并且我实现了onDismiss方法来保存数据.
在onDismiss方法中,我需要从Dialog上的editView获取数据.我使用getView().findViewByID得到EditView中,但该方法GetView()返回null.
这是我的代码:
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
builder.setView(inflater.inflate(R.layout.dialog_signin, null))
.setPositiveButton(R.string.signin, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
LoginDialogFragment.this.getDialog().dismiss();
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
LoginDialogFragment.this.getDialog().cancel();
}
});
return builder.create();
}
@override
public void onDismiss(){
EditView view = (EditView)getView().findViewByID(R.id.edit);
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以将OnCreateDialog中膨胀的视图保存为属性,但这对我来说似乎不对.
如何在onDismiss中从屏幕上获取视图的正确方法?
Ps:我工作的地方不允许我发布我的代码,因此我从谷歌中获取了代码并将其更改为尽可能接近我的代码.
我正在使用PanoramaGL在我的应用程序中渲染一些球形图像.
我的图像大于3000像素.我尝试使用支持2048x2048的全景图的PLSpherical2Panorama,但质量不高.(我调整了图像大小)
然后我将全景图分成立方图像,每张面都有1527x1527像素.我编辑了panoramaGL库以支持2048x2048px的立方图像(最初它仅支持1024x1024).质量比sphere2好,但不是我所期望的,而且性能也很糟糕.
一位朋友正在为iOS制作相同的应用程序并使用该库:https://bitbucket.org/javieralonso/japanoview
结果很完美.
所以,我的问题是:任何人都知道任何渲染球形或立方图像并具有热点功能的android库?
我在谷歌开发者的一个Android视频中看到,他们实现了两种方法,并通过注释定义了应该根据api级别调用哪种方法.
不幸的是,我再也找不到视频了(我记不起哪个视频了),所以我在StackOverflow上搜索了这个问题,发现了这个:针对不同API级别的不同Java方法
在他使用注释@apilevel的问题中,我找不到那个注释.
基本上,我想要做的是:
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
private int getDisplayWidth(Display display){
Point size = new Point();
display.getSize(size);
return size.x;
}
@TargetApi(Build.VERSION_CODES.FROYO)
private int getDisplayWidth(Display display){
return display.getWidth();
}
Run Code Online (Sandbox Code Playgroud)
但是ADT给了我重复的方法错误.
这是我的 .eslintrc
{
"plugins": ["react"],
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
},
"env": {
"es6": true,
"browser": true,
"node": true,
"mocha": true
},
"extends": ["eslint:recommended", "plugin:react/recommended", "standard"],
"rules": {}
}
Run Code Online (Sandbox Code Playgroud)
这是我的组件:
class Index extends React.Component {
static async getInitialProps({ req }) {
....
}
}
Run Code Online (Sandbox Code Playgroud)
Eslint 抱怨 getInitialProps:
Parsing error: Unexpected token getInitialProps
Run Code Online (Sandbox Code Playgroud)
除了添加抑制注释之外,还有什么方法可以让 eslint 接受 getInitialProps 声明?
我的 Room`s dao 上有这个方法
@Query("SELECT * FROM Expense WHERE date >= :initDate AND date <= :endDate AND chargeableUuid = :chargeableUuid ORDER BY date")
fun currentMonth(initDate: Long, endDate: Long, chargeableUuid: String): Flowable<List<Expense>>
Run Code Online (Sandbox Code Playgroud)
我是这样使用它的:
dao.currentMonth(firstDayOfMonth, lastDayOfMonth, account.uuid)
.mergeWith(dao.currentMonth(firstDayOfMonth, lastDayOfMonth, card.uuid))
.subscribe { Log.i("test", "size ${it.size}" }
Run Code Online (Sandbox Code Playgroud)
如果我分别执行每个调用,每个调用都返回一个元素(不同的元素),但是当我一起执行它们时,日志输出只有一个元素在返回的列表中。
如何将两个 Flowables 的发射合并为一个?
我在 Circle ci 中运行 UI 测试时遇到超时问题,因为命令connectedAndroidTest 的运行时间超过 10 分钟。
所以我试图将它们分成测试套件并一次运行每个套件。
我在这里找到了如何为我的 android 测试创建套件:https://developer.android.com/reference/junit/framework/TestSuite.html
但我找不到如何使用connectedAndroidTest 命令运行它们。