小编Mak*_*ele的帖子

在android eclipse项目中使用新的firebase sdk

刚刚宣布了具有强大功能的新firebase,但根据文档(https://firebase.google.com/docs/android/setup#prerequisites),现在需要android studio(以及gradle).目前在我的cocos2d-x应用程序中,我必须使用ADT/Eclipse来构建应用程序,因为还没有支持gradle(但是cocos2d-x团队正在开发它).我现在使用的是旧版本的sdk,它只是一个jar文件.有没有办法在eclipse中使用新的firebase?让我最担心的是插件:

apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)

eclipse android adt cocos2d-x firebase

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

API'variant.getMergeResources()'已过时,并已替换为'variant.getMergeResourcesProvider()'

我在项目中遇到非常烦人的警告:

WARNING: API 'variant.getMergeResources()' is obsolete and has been replaced with 'variant.getMergeResourcesProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance.
REASON: It is currently called from the following trace:

...

WARNING: Debugging obsolete API calls can take time during configuration. It's recommended to not keep it on at all times.
Affected Modules: app
Run Code Online (Sandbox Code Playgroud)

由于该警告将在明年成为错误,因此我想一劳永逸地修复它。

我已经更新了gradle插件,google play服务插件和所有依赖项,但是问题仍然存在。

这是项目级别的build.gradle文件:

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.1'
        classpath 'com.google.gms:google-services:4.3.0'
    }
} …
Run Code Online (Sandbox Code Playgroud)

java android gradle android-studio android-gradle-plugin

14
推荐指数
1
解决办法
2601
查看次数

RatingBar变得半透明

我使用的是RecyclerViewRatingBar每一个排.现在,有时RatingBars的一部分绘制不正确.离开屏幕并返回后,它们都恢复正常.我不知道为什么会发生这种情况,我甚至删除了任何样式,RatingBar所以它应该具有默认外观.

这是它的样子:

在此输入图像描述

在Nexus 6P(Android 7.1.1)上测试过.还在三星Galaxy J3(2016)(Android 5.1.1)上测试过,这里没有问题.

我还补充道

holder.rbRating.requestLayout();
Run Code Online (Sandbox Code Playgroud)

onBindViewHolder().它减少了一点问题,但它仍然存在.当我重复使用屏幕上的"坏"行时,它看起来很好.

这是行布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:paddingTop="@dimen/main_margin_top"
    android:paddingBottom="@dimen/main_margin_top"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <TextView
        android:id="@+id/tvRatingTitle"
        android:text="Czysto?? wody"
        android:textSize="16sp"
        android:textStyle="bold"
        android:layout_centerHorizontal="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <RatingBar
        android:id="@+id/rbRating"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="4dp"
        android:isIndicator="true"
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/tvRatingTitle"
        android:numStars="5"
        android:rating="2.5"
        android:stepSize="0.1" />

    <CheckBox
        android:id="@+id/chkMissing"
        android:text="Zaznacz je?li nie ma"
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/rbRating"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我也尝试过转换android.support.v7.widget.AppCompatRatingBar,但它没有任何区别.

编辑:

@Muhib Pirani解决方案似乎有效,但我有两个小问题:

1)在Nexus 6P上,第一层星星偏移几个像素(放大查看):

在此输入图像描述

2)在三星Galaxy J3(2016)上看起来像这样:

在此输入图像描述

我对边界很好,但我希望它们在空星中也是绿色(不是灰色,背景应该是灰色的).

android android-view ratingbar

12
推荐指数
1
解决办法
662
查看次数

为数百万个点生成热图图层

我正在使用谷歌地图中的热图图层显示热图,但是,我现在有太多的点,它停止工作,因为浏览器无法再处理它了.我发现它们提供了Fusion Tables,但它们也有限:到100k行,这太低了.我需要渲染数百万的热图或者甚至更多的点.如果我的服务器可以有一些PHP脚本来渲染热图,例如,每天一次,我会很完美.然后来自js的客户端将只下载预加载的热图(在地图上像谷歌地图,但也可能是不同的地图).这是否可以通过一些现有技术(可以是商业的)?

javascript php google-maps heatmap google-fusion-tables

11
推荐指数
1
解决办法
1451
查看次数

使用UITableViewAutomaticDimension使用嵌入式UICollectionView创建UITableView

我想使用一些图标创建一个UITableView带标题标签和嵌入UICollectionView(它知道它的大小)UITableViewAutomaticDimension.UITableView当我在UICollectionView里面时,问题是找出细胞高度有问题.我必须滚动UITableView一下才能重新计算尺寸.但即便如此,它也存在高度问题(如果从较大的高度重复使用它会太大).除了UICollectionView乞讨之外,内部的图标不知道,但它们是从服务器加载的.

我也尝试为a创建一个高度约束UICollectionView,但是这样我得到"无法同时满足由冲突引起的约束",UIView-Encapsulated-Layout-Height并且我自己的约束无论如何都被删除了.

我已经创建了一个带有示例项目的GitHub存储库(我尽可能简单地完成了它):

https://github.com/piotrros/CollectionViewInTableView

uitableview ios uicollectionview swift

10
推荐指数
1
解决办法
1502
查看次数

在缩放,旋转和平移后保存已编辑的图像

我已经创建了这个类的Swift版本:https://github.com/bennythemink/ZoomRotatePanImageView/blob/master/ZoomRotatePanImageView.m效果很好.现在我想将修改后的图像保存到文件中.问题是我想以全分辨率保存它,而且我想保存只对用户可见的区域.

让我举个简单的例子:

在此输入图像描述

这就是它在我的应用程序中的外观.图像是iOS模拟器中的一些示例.大多数是在屏幕外.我只想看到可见的部分.

保存后没有裁剪它看起来像这样:

在此输入图像描述

到目前为止,剪裁后效果非常好.

但现在让我们做一些改变:

在此输入图像描述

保存后:

在此输入图像描述

看起来它被错误的支点所改变.我该如何解决?

这是我保存的代码:

    UIGraphicsBeginImageContextWithOptions(image.size, false, 0)
    let context = UIGraphicsGetCurrentContext()
    let transform = imageView.transform
    let imageRect = CGRectMake(0, 0, image.size.width, image.size.height)

    CGContextSetFillColorWithColor(context, UIColor.blueColor().CGColor) //for debugging
    CGContextFillRect(context, imageRect)

    CGContextConcatCTM(context, transform)

    image.drawInRect(imageRect)
    let newImage = UIGraphicsGetImageFromCurrentImageContext()!
    UIGraphicsEndImageContext()
Run Code Online (Sandbox Code Playgroud)

有一种更简单的方法来实现它:

UIGraphicsBeginImageContextWithOptions(imageContainer.bounds.size, false, 0)
self.imageContainer.drawViewHierarchyInRect(imageContainer.bounds, afterScreenUpdates: true)
let screenshot = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext() 
Run Code Online (Sandbox Code Playgroud)

但是输出图像的视图大小不是实际图像,我希望它以全分辨率.

ios swift

9
推荐指数
1
解决办法
1025
查看次数

Gradle挂起执行任务:[:android:generateDebugSources

自从我的Mac OS X更新到El Capitan(以及安卓工作室从1.5.1到2.x使用所有工具和sdks)我在Android Studio中遇到了我的libgdx-robovm游戏问题.当我在做Gradle Sync时,它总是挂起:

执行任务:[:android:generateDebugSources,:android:generateDebugAndroidTestSources,:android:mockableAndroidJar,:android:prepareDebugUnitTestDependencies,:android-full:generateDebugSources,:android-full:generateDebugAndroidTestSources,:android-full:mockableAndroidJar,:android-full: prepareDebugUnitTestDependencies]

总是.悬挂我的意思是永远.

我看到很少有同样问题的主题,但我找不到任何解决方案,我真的很沮丧.我试过了:

1)确保我安装了zlib(s /usr/include/zlib.h),

2)在Global Gradle设置中我尝试打开"离线工作",但结果是一样的,

3)清除robovm和gradle缓存,

4)重启Android Studio,

5)将Android Studio更新到最新的稳定版本,

6)我已经尝试了最新的gradle,但它只是提出了新的问题,最后在摆脱它们后我得到了相同的点(悬挂),

7)删除.gradle目录,

8)删除构建目录的内容,

9)清洁和重建,

10)无效和重新启动 - 重新启动后它没有挂起,但任何操作(清理,重建,同步)都会再次挂起,

11)尝试过较旧的Android Studio(1.5.1),

12)尝试了不同的gradle插件版本:1.2.3,1.5.0,2.0 +

13)尝试了不同的android构建工具(22.0.1和23.xx)

14)直接从控制台编译(使用-d获取更多日志):

最后几行:

11:17:41.891 [DEBUG] [org.gradle.model.internal.registry.DefaultModelRegistry]将模型元素'tasks.tasks'转换为状态GraphClosed.

11:17:41.891 [INFO] [org.gradle.execution.TaskNameResolvingBuildConfigurationAction
]

从项目中选择的主要任务"任务":11:17:41.893 [DEBUG] [org.gradle.execution.taskgraph.DefaultTaskGraphExecuter]时间:

创建DAG耗时0.002秒11:17:41.894 [INFO] [org.gradle.BuildLogger]评估所有项目.

配置> 7/7项目

(永远......)

编辑:

可能导致这种冻结的问题是我有ios(robovm)的2个子项目,当我删除其中一个时,它最终起作用.这只是ios的一个问题,因为android 2子模块不是问题.我还必须将r​​obovm更新到最新版本.

android gradle libgdx android-studio robovm

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

Swift Codable 将空 json 解码为 nil 或空对象

这是我的代码:

class LoginUserResponse : Codable {
    var result: String = ""
    var data: LoginUserResponseData?
    var mess: [String] = []
}

public class LoginUserResponseData : Codable {
    var userId = "0"
    var name = ""
}
Run Code Online (Sandbox Code Playgroud)

现在,调用服务器 API 我正在解析这样的响应(使用 Stuff 库来简化解析):

do {
    let loginUserResponse = try LoginUserResponse(json: string)
} catch let error {
    print(error)
}
Run Code Online (Sandbox Code Playgroud)

当我输入正确的密码时,我会得到这样的答案:

{"result":"success","data":{"userId":"10","name":"Foo"},"mess":["You're logged in"]}
Run Code Online (Sandbox Code Playgroud)

这很好,解析器工作正常。

提供错误密码时给出以下答案:

{"result":"error","data":{},"mess":["Wrong password"]}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,解析器失败了。它应该将数据设置为 nil,而是尝试将其解码为 LoginUserResponseData 对象。

我在使用改造的 Android 上使用相同的方法,它工作正常。我宁愿不想将所有字段都设为可选。

有没有办法让解析器将空的 json {} 视为 nil?或者将 LoginUserResponseData 设为非可选并且它只有默认值?我知道我可以为此创建一个自定义解析器,但我有大量这样的请求,它需要太多的额外工作。

ios swift codable decodable

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

ADB中的java.lang.UnsatisfiedLinkError和未知错误

从Android Kitkat(4.4.2)将我的华为Ascend P7更新到Android Lolipop(5.1.1)后,当我启动应用程序时,我开始遇到两个非常棘手的问题:

1)(Android Studio,Eclipse,来自终端的ADB)

[2015-10-20 09:34:48 - myapp] ------------------------------
[2015-10-20 09:34:48 - myapp] Android Launch!
[2015-10-20 09:34:48 - myapp] adb is running normally.
[2015-10-20 09:34:48 - myapp] Performing com.example.myapp.MainActivity activity launch
[2015-10-20 09:34:49 - myapp] Automatic Target Mode: using device '7N2SRA153S024947'
[2015-10-20 09:34:49 - myapp] Uploading myapp.apk onto device '7N2SRA153S024947'
[2015-10-20 09:34:51 - myapp] Installing myapp.apk...
[2015-10-20 09:35:12 - myapp] Success!
[2015-10-20 09:35:13 - myapp] Starting activity com.example.myapp.MainActivity on device 7N2SRA153S024947
[2015-10-20 09:35:13 - myapp] ActivityManager: java.lang.UnsatisfiedLinkError: No …
Run Code Online (Sandbox Code Playgroud)

java eclipse android adb android-studio

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

PolyUtil.containsLocation无法按预期工作

我做了一个简单的测试:

LatLng city = new LatLng(53.121896, 18.010110);

List<LatLng> pts = new ArrayList<>();
pts.add(new LatLng(53.520790, 17.404158));
pts.add(new LatLng(53.450445, 19.209022));
pts.add(new LatLng(52.659365, 17.656366));
pts.add(new LatLng(52.525305, 19.303601));

LatLngBounds bounds = new LatLngBounds(pts.get(2), pts.get(1));

boolean contains1 = PolyUtil.containsLocation(city.latitude, city.longitude, pts, true);
System.out.println("contains1: " + contains1);

boolean contains2 = bounds.contains(city);
System.out.println("contains2: " + contains2);
Run Code Online (Sandbox Code Playgroud)

下面是它的工作原理:

  1. 我创建了一个特定的point(city),我想测试它是否在多边形内,
  2. 我宣布一个多边形为4个点并且边界为2个点(东北和西南).

输出是:

contains1: false
contains2: true
Run Code Online (Sandbox Code Playgroud)

为什么PolyUtil.containsLocation返回false?我在这里错过了什么?这很简单,你可以在谷歌地图上测试这些点.

PolyUtil是Google提供的android maps utils类: 'com.google.maps.android:android-maps-utils:0.5'

java android google-maps google-maps-android-api-2

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