小编Bud*_*ius的帖子

Gradle,Android和ANDROID_HOME SDK位置

编辑:(aug-2016)

这个问题是从2013年11月开始的(当Android Studio仍处于开发者预览模式时),

当前(AS v2.2,2016年8月)在安装期间,AS要求选择SDK文件夹(或默认安装),它会自动应用于您正在打开的项目.

这意味着任何可能的解决方法或修复都无关紧要,因为问题不再可再生.

原始问题:

我们这个项目有几个已经配置好的模块,并且使用包装器在另一台开发者PC上正确执行.我将完整的git子模块克隆到我的机器中.

下面是我的命令行的直接打印:

$ ./gradlew

FAILURE: Build failed with an exception.

* Where:
Build file '/home/budius/project_name/ActionBar-PullToRefresh/library/build.gradle' line: 1

* What went wrong:
A problem occurred evaluating project ':ActionBar-PullToRefresh:library'.
> SDK location not found. Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variable.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 6.378 …
Run Code Online (Sandbox Code Playgroud)

android gradle android-build android-gradle-plugin

147
推荐指数
12
解决办法
23万
查看次数

检查通用T是否实现了接口

所以我在Java中有这个类:

public class Foo<T>{
}
Run Code Online (Sandbox Code Playgroud)

在这个类里面我想知道T是否实现了某个接口.

以下代码不起作用,但它是我想要完成的想法:

if(T.class implements SomeInterface){
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

所以我想检查T传递给Foo 的类是否有implements SomeInterface签名.

可能吗?怎么样?

java generics interface class implements

18
推荐指数
1
解决办法
3万
查看次数

Android notfication BigPictureStyle消失文本

我正在使用兼容性库实现Android丰富的通知,所以我的所有通知都是使用构建的 android.support.v4.app.NotificationCompat.Builder

我正在使用的代码如下:

  // Base notification
  NotificationCompat.Builder b = new NotificationCompat.Builder(context);
  b.setSmallIcon(R.drawable.ic_actionbar);
  b.setContentTitle(title);
  b.setContentText(Html.fromHtml(msg));
  b.setTicker(title);
  b.setWhen(System.currentTimeMillis());
  b.setDeleteIntent(getDismissNotificationsPendingIntent(quantity));
  b.setLargeIcon(Picasso.with(context).load(iconUrl).get());

  // BigPictureStyle
  NotificationCompat.BigPictureStyle s = new NotificationCompat.BigPictureStyle();
  if (expandedIconUrl != null) {
      s.bigLargeIcon(Picasso.with(context).load(expandedIconUrl).get());
  } else if (expandedIconResId > 0) {
      s.bigLargeIcon(BitmapFactory.decodeResource(context.getResources(), expandedIconResId));
  }
  s.bigPicture(Picasso.with(context).load(bigImageUrl).get());
  b.setStyle(s);
  b.setContentIntent( // some intent
  b.addAction(R.drawable.ic_notification_ // some action
  Notification n = b.build();

  // and go ahead to show it
Run Code Online (Sandbox Code Playgroud)

如果显示图像不兼容,基本上没有加载任何图像,所以我们不会无缘无故地使用内存,但这是基础,我期待类似于下图中右边的通知

在此输入图像描述

问题是消息(在示例"触摸以查看屏幕截图.")显示通知何时签约,但是当通知扩展时,消息消失.

有什么setMessage()方法我忘记打电话了吗?这是一个错误NotificationCompat吗?谁能在这里提供一些见解?

notifications android android-notifications

18
推荐指数
1
解决办法
9751
查看次数

使用halfninja ffmpeg在Android中连接mp4文件

我已经设法使用NDK版本r5c为Android NDK 编译halfninja ffmpeg脚本.(不幸的是,任何使用早期NDK编译的尝试都会产生一些错误),而且我对整个NDK过程并不是很了解,所以对我来说这有点受欢迎.

他的脚本正在编译ffmpeg版本N-30996-gf925b24(他为脚本执行的具体提交)

继续我的实际应用程序.我设法修剪影片没有问题,现在我需要加入/在使用上这3个环节中的命令的任何和几种组合(将它们连接起来,但任何学尝试链接1,链接2,LINK3)产生的错误,如cat is not valid,> is undefinined,unknown option filter_complex或试图重写一些输入文件.

有没有人知道是否有可能和(怎么做),加入/连接mp4视频(所有相同的编解码器,大小,质量等)使用Android上的半连队编译ffmpeg,或如何编译/获取ffmpeg Android使用最新的源代码?

我也快速尝试了mp4Parser而没有取得多大成功.

最终我试图让这个伪方法起作用:

public static File concatenate(String[] inputPaths, String outputPath){

    // ... do stuff do generate ffmpeg commands....
    VideoKit v = new VideoKit();
    v.run(cmds);

    File f = new File(outputPath);
    return f;
}
Run Code Online (Sandbox Code Playgroud)

android ffmpeg video-processing mp4parser

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

如何在Lombok构建器中的构造函数之后运行代码

我有一个类,我想使用Lombok.Builder,我需要预处理一些参数.像这样的东西:

@Builder
public class Foo {
   public String val1;
   public int val2;
   public List<String> listValues;

   public void init(){
       // do some checks with the values.
   }
}
Run Code Online (Sandbox Code Playgroud)

通常我会调用init()NoArg构造函数,但是使用生成的构建器我无法这样做.有没有办法让init生成的构建器调用它?例如,build()会生成如下代码:

public Foo build() {
   Foo foo = Foo(params....)
   foo.init();
   return foo;
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以手动编码all args构造函数,Builder会通过它调用它,我可以init在那里调用.

但这是次优解决方案,因为我的类可能偶尔会添加新字段,这也意味着更改构造函数.

java lombok

14
推荐指数
3
解决办法
7677
查看次数

Android App转移给其他开发者

有一个开发人员有兴趣购买我的一个应用程序(唯一一个实际拥有用户的应用程序),这意味着我需要向他发送原始源代码,密钥库并请求Google通过以下链接进行传输:https:// support. google.com/googleplay/android-developer/answer/6230247?hl=en

问题是:我的所有应用程序都使用来自同一个密钥库的相同证书.

所以我的问题是:新开发者是否有可能劫持我的任何其他应用程序?

我相信答案是"不会.设备会允许另一个使用相同证书和相同包名签名的apk在设备上更新,但Google Play不允许开发人员上传另一个具有相同包名称的应用像我的任何其他应用程序".

但我不确定,我想进一步了解技术细节.

正如我所说,我拥有的其他应用程序并不重要,我也可以取消发布它们.但我不愿意,即使我这样做,这个问题仍然有效.

ps:是的,现在我已经知道每个应用程序应该有1个证书.

android keytool google-play

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

每个{...}块中都存在Mockk缺失呼叫

我被困在尝试用模拟嘲笑一些东西:

我在gradle上有以下设置

root:
  |-- App (just a sample app for the SDK)
  |-- SDK (SDK we develop) << apply plugin: 'com.android.library'
       |-- SDKimpl.kt
  |-- Foo (wrapper around a .jar library) << apply plugin: 'com.android.library'
       |-- Foo.kt
Run Code Online (Sandbox Code Playgroud)

所以我正在androidTest为SDK 编写一个并尝试进行模拟Foo.kt。Foo类没有什么不寻常的,只是直接的class Foo(private val someParams) {

因此,使用androidTestImplementation "io.mockk:mockk-android:1.8.13"模拟去:

val mock: Foo = mockk()
// val mock: Foo = mockkClass(Foo::class) // also tried this
every { mock.getData() } returns listOf("1", "2", "3")
Run Code Online (Sandbox Code Playgroud)

我总是遇到以下崩溃:

io.mockk.MockKException: Missing calls inside every …
Run Code Online (Sandbox Code Playgroud)

android mocking kotlin mockk

11
推荐指数
6
解决办法
5598
查看次数

OpenOCD无法与cortex处理器连接

我正在尝试从Raspberry Pi 3计算模块GPIO中闪存基于皮质m0的SoC,但它仍然会出现相同的错误.

错误:无法初始化调试端口

我正在关注这个https://learn.adafruit.com/programming-microcontrollers-using-openocd-on-raspberry-pi?view=all和本教程https://movr0.com/2016/09/02/use -raspberry-pi-23-as-a-jtagswd-adapter /.编译和安装没有问题.

cortex m0 SoC是一款采用ISP1302模块封装的Nordic Semiconductor nRF51822蓝牙芯片.

模块GND和3.3V直接连接到Compute模块dev-kit,SWDCLK和SWDIO按照教程在GPIO 25,24上连接.SRST或TRST没有连接.

配置文件如下:

source [find interface/raspberrypi2-native.cfg]
bcm2835gpio_swd_nums 25 24
transport select swd

# target
source [find target/nrf51.cfg]

init
targets
Run Code Online (Sandbox Code Playgroud)

(我bcm2835gpio_srst_num 18从raspberrypi2-native.cfg中删除了)

执行 sudo openocd -f config.cfg

树莓派CM3在选项core_freq=250打开的情况下运行,/boot/config.txt我需要此选项才能可靠地访问UART1.我认为它可能与时钟有关,但不确定如何更改/修复它.

我尝试了几种reset_config没有改变错误的组合.完整初始化堆栈如下:

Open On-Chip Debugger 0.10.0+dev-00111-gca9dcc8 (2017-04-24-15:30)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.org/doc/doxygen/bugs.html
BCM2835 GPIO nums: swclk = 25, swdio = 24
cortex_m reset_config sysresetreq
adapter …
Run Code Online (Sandbox Code Playgroud)

linux openocd cortex-m nrf51

8
推荐指数
1
解决办法
1744
查看次数

我的Android AChartEngine已经可以使用,但如何让它看起来不错?

我想这个标题会泄露我的大部分问题,但让我们详细介绍一下背景:

我有一个主要针对平板电脑的Android应用,它将在TimeCharts中显示一些不同的实时数据.所以我已经有了一个服务来与数据源进行通信,数据源抓取数据,解析它并将值添加到单例TimeSeries.当用户导入和导出片段时,片段只需添加正确的TimeSeries并保持mChartView.repaint();每500ms 调用一次

所有这些都是可操作的,并且可以在标签,旋转,通知等方面很好地工作

因为它是一款平板电脑应用,我希望实现两件事:1)最大化观看区域; 2)让它看起来不错.

1)我已经删除了缩放按钮(出于某种原因,如果我尝试添加它们,它给我NullException),mRenderer.setZoomButtonsVisible(false);但是仍然有一个巨大的底部边缘占用了大量的屏幕空间.我尝试设置一个负边框,它可以工作,但标签不会随着这个边框移动而我最终会让X轴越过标签甚至传递它们.如何使用边框向下移动标签,或者将它们放在图表的顶部?

2)a)应用程序是用户可配置为使用Holo_Dark或Holo_light.所以我在渲染器上使用透明背景(请参阅下面的代码片段)来显示holo所做的漂亮背景阴影.如何更改轴文本颜色?我找到了mRenderer.setAxesColor(color)但它只改变了行,而不是文本.

    int color = Color.argb(0, 255, 255, 255); // Transparent colour
    mRenderer.setBackgroundColor(color);
    mRenderer.setMarginsColor(color);
Run Code Online (Sandbox Code Playgroud)

b)Y轴在它的标签顶部交叉,我怎样才能将它们向左偏移一点,以便文本可读?(它不是setMargins())

c)当用户在图表周围进行缩放和平移时,图表会停止更新/重新缩放屏幕上的最新值,并且用户必须保持平移以查看最新值.我在ActionBar上添加了一个"重置缩放"按钮,但我无法使其工作.什么是使值再次更新的代码.

d)如果我的TimeSeires的范围是10分钟(每秒2个值),我怎么能让它只显示最后1分钟(例如),如果用户想要之前的值,他可以反击?(以及c上的使用按钮)重新开始)

目前我的渲染设置为:

    int color = Color.argb(0, 255, 255, 255); // Transparent colour
    mRenderer.setBackgroundColor(color);
    mRenderer.setMarginsColor(color);
    mRenderer.setAxisTitleTextSize(16); // 16
    mRenderer.setChartTitleTextSize(20); // 20
    mRenderer.setLabelsTextSize(15); // 15
    mRenderer.setLegendTextSize(15); // 15
    mRenderer.setPointSize(0); // 10
    mRenderer.setMargins(new int[] { 20, 30, 15, 0 });      
    mRenderer.setZoomButtonsVisible(false);
    mRenderer.setShowAxes(true);
    mRenderer.setShowLegend(true);
    mRenderer.setShowGridX(true);
    mRenderer.setShowLabels(true);
Run Code Online (Sandbox Code Playgroud)

每个渲染添加到多个渲染器的方式如下:

    renderer.setDisplayChartValues(false);
    mRenderer.addSeriesRenderer(renderer);
Run Code Online (Sandbox Code Playgroud)

非常感谢所有的帮助!

编辑只是为了包含我的最终代码供其他人查看:

我最终完全放弃了图例,并在图表上方浮动实现了我自己的图例,因此布局是一个带有ChartView和TableLayout的FrameLayout.

我实现了一个由几个类扩展的抽象CurvesFragment类.

我在片段OnCreateView中配置图表为: …

android achartengine

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

IntelliJ IDEA中的注释处理器编译

我正在使用最新版本的IntelliJ IDEA(13.1.4),我正在开发自己的自定义注释.

我目前在我的项目中有两个模块

  • MyOwnCustomAnnotationProcessor(这里我有实际的处理器)
  • MyOwnCustomAnnotationProcessorTest(这个我基本上有几个类注释,看它是否都生成正常)

我在Eclipse工作,但我正在尝试迁移IntelliJ,因为我无法忍受Eclipse.我设法通过让Ant构建生成主项目的.jar文件并且Test类将使用此.jar来使它在Eclipse中有点工作.

但是我不能让它在IntelliJ上工作.

Settings -> Compiler -> Annotation Processor我有一个新的配置文件中,测试项目在此配置文件中,配置文件如下:

注释处理器屏幕

我也尝试过更改Processor Path输出文件夹(其中有类META-INF),但没有运气.该generated文件夹由IDE创建,但它找不到任何处理器.

关于如何在这里进行的任何提示?

java annotations intellij-idea

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