小编djc*_*535的帖子

如何使用Gitlab设置代码审查?

如何使用Gitlab设置代码审查?我认为它在Gitlab网站上列为一个功能,但我似乎无法找到如何设置一个的说明(就此而言,任何Gitlab用户手册的链接都将非常受欢迎).

我的一些搜索表明,"合并请求"是要走的路......但我发现它们有限制.已发布的合并请求显示一个分支与另一个分支之间的所有提交.我似乎只能查看为每个单独提交生成的差异.例如,假设我有一个我想要查看的文件.这是一个新文件,但我在dev分支上提交了超过10次提交的更改.如果我从集成发出该dev分支的合并请求,我会看到10个提交,每个提交都显示对文件进行的增量更改...我想查看整个事情.它是新的!

我在这里吠叫错了吗?是否有一个我可以在GitLab中使用的实际代码审查工具,或者是合并请求的方式,如果他们是我使用它们不正确?在这里设置正确的代码审查的最佳方法是什么?

git pull-request gitlab

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

Eclipse给我无效的参数'候选者是:void*memset(void*,int,?)'虽然我知道args是好的

我在eclipse中得到了一个无效的参数错误,尽管我相信我的论点是好的.建议的参数包含'?' 我认为这可能表明问题,但我不知道如何解决它.

我尽力复制我在这里看到的例子:http:
//www.cplusplus.com/reference/clibrary/cstring/memset/

为了确定我正确的args.

#include <stdio.h>
#include <string.h>
void foo()
{
    char str[] = "why oh why does my IDE give me errors when I know my args are good?";
    memset(str, '-', 4);
    puts(str);
}
Run Code Online (Sandbox Code Playgroud)

Eclipse在memset行上给出了以下错误:

无效的参数'候选者是:void*memset(void*,int,?)'

可能是什么导致了这个?那是什么'?' 作为第3个arg?

提前致谢!

PS:刚刚注意到我在尝试使用malloc,calloc等操作时遇到了类似的错误.

eclipse memset

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

如何在Eclipse中同时运行多个设备的Logcat

我有两个连接到同一台站的Android设备.我想在eclipse中以调试模式运行它们时查看两者的logcat.

我已经通过以下步骤获得了一些好运:

  1. 在设备1上运行应用程序
  2. 在设备2上运行应用程序
  3. 打开一个新窗口(窗口/新窗口)
  4. 在新窗口中,打开view logcat

大约40%的时间会导致每个eclipse窗口显示来自不同手机的数据......但并非总是如此.它似乎几乎是一种运气般的东西.通常两个窗口都显示相同的设备.如果我打开设备查看器并在任一窗口中选择一个设备都会更改.

我怎么能一直这样做?

eclipse android logcat

21
推荐指数
2
解决办法
9371
查看次数

Android NDK/JNI:构建依赖于其他共享库的共享库

我正在编写一个Android应用程序,希望将JNI调用成为使用NDK构建的共享库.诀窍是这个共享库调用OTHER共享库提供的函数.其他共享库是已在其他地方编译的C库.

这是我尝试过的:

我的环境: 我在Eclipse工作.我添加了原生支持并拥有一个jni库.在那个库中,我有我的代码和\ lib目录,我已经复制了我的其他.so文件.

尝试#1 Android.mk:告诉它libs在哪里

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE           := native_lib
LOCAL_SRC_FILES        := native_lib.cpp

LOCAL_LDLIBS := -L$(SYSROOT)/../usr/lib -llog
LOCAL_LDLIBS += -L$(LOCAL_PATH)/lib/support_lib1
LOCAL_LDLIBS += -L$(LOCAL_PATH)/lib/support_lib2

include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)

这构建得很好,但是当我尝试运行时,我得到错误,表明dlopen(libnative_lib)失败,因为它无法加载libsupport_lib1.

来到这里我发现了这个:

共享库可以调用另一个共享库吗?

这说我需要在所有必要的库上调用load库.大!

尝试#2首先打开每个库

static {
    System.loadLibrary("support_lib1");
    System.loadLibrary("support_lib2");
    System.loadLibrary("native_lib");
}
Run Code Online (Sandbox Code Playgroud)

再次,这构建得很好,但是当我运行时,我得到一个新的错误:

无法加载libsupport_lib1.findLibrary返回null.

现在我们到了某个地方.它不能将库加载到目标.

尝试#3将.so文件复制到project/libs/armeabi中

没工作.当Eclipse构建时,它删除了我放在那里的文件.

尝试#4为每个库创建一个新模块

那么我发现了这个:

Android NDK:使用预编译的静态库链接

它是关于静态库的,但也许我遇到了类似的问题.要点是我需要为每个库声明一个模块.所以我的新Android.mk看起来像这样:

LOCAL_PATH := $(call my-dir)

#get support_lib1
include $(CLEAR_VARS)
LOCAL_MODULE           := support_lib1
LOCAL_SRC_FILES        := $(LOCAL_PATH)/lib/support_lib1.so
include $(BUILD_SHARED_LIBRARY)

#get support_lib2
include $(CLEAR_VARS)
LOCAL_MODULE           := support_lib2
LOCAL_SRC_FILES        := $(LOCAL_PATH)/lib/support_lib2.so
include $(BUILD_SHARED_LIBRARY) …
Run Code Online (Sandbox Code Playgroud)

java-native-interface linker android shared-libraries android-ndk

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

将对象添加到多个java集合中:这是否会生成多个副本?

如果我将同一个对象添加到两个不同的集合中,是否会在每个集合中复制该对象,或者集合是否会引用同一个对象?

我想要做的是使用两个不同的集合来管理同一组对象,但允许我使用不同的方法来访问和排序对象.

java collections

5
推荐指数
1
解决办法
2412
查看次数

使用MediaPlayer播放MediaRecorder创建的AMR文件失败,muri null

我正在编写一个应用程序,使用MediaRecorder以AMR格式记录来自麦克风的语音,然后使用MediaPlayer播放数据.

这无论如何都是目标.

我相信我的MediaRecorder方面正在工作,我正在以正确的数据速率在正确的位置生成数据文件.以下是我启动和停止MediaRecorder的方法

public void OnStartRecord(View v )
{
    System.out.println( "StartRecord");

    try {
       audioFile = File.createTempFile("amrtmp", ".amr", getApplicationContext().getFilesDir());
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    System.out.println( "Recording to " + audioFile.getAbsolutePath());

    mRecorder = new MediaRecorder();
    mRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION);
    mRecorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
    mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    mRecorder.setAudioEncodingBitRate(4750);
    mRecorder.setAudioSamplingRate(8000);      
    mRecorder.setOutputFile(audioFile.getAbsolutePath());

    try {
        mRecorder.prepare();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    mRecorder.start();
}

public void OnStopRecord(View v )
{
    System.out.println( "StopRecord");
    mRecorder.stop();
    mRecorder.release();
}
Run Code Online (Sandbox Code Playgroud)

这就像一个魅力.典型的输出是类似的

StartRecord
Recording to /data/data/com.test.playback/files/amrtmp-235967797.amr …
Run Code Online (Sandbox Code Playgroud)

android media-player amr mediarecorder

5
推荐指数
0
解决办法
1587
查看次数

如何使用MediaExtractor和MediaCodec设置流音频?

我正在尝试流式传入AMR_NB。我不能直接使用MediaPlayer,因为它需要可搜索的文件。我想使用MediaCodec,但是要使用MediaCodec,我需要(我认为...请纠正我!)MediaExtractor给我诸如PresentationTime之类的东西。真的吗?我可以在没有MediaExtractor的情况下使用MediaCodec吗?

MediaExtractor似乎需要可搜索的文件。该文档仅专门针对setDataSource操作之一进行了说明,但是当我尝试使用其他操作时,由于搜索尝试失败而失败。

那么,我该怎么做才能播放传入的AMR流?我知道一种方案,您可以将传入的数据保存到文件中,并定期制作该文件的副本以馈送到MediaPlayer,但我真的更希望找到一个真正的诚实流媒体解决方案。

是否可以在不使用MediaExtractor的情况下使用MediaCodec?如果是这样,我如何找到演示时间和要传递给MediaCodec.createDecoderByType的字符串?文档说“ audio / 3gpp”是我想要的,但是当我尝试使用它时,出现以下错误:

codec = MediaCodec.createDecoderByType("audio/3gpp");

01-02 03:59:36.980: E/OMXMaster(21605): A component of name 'OMX.qcom.audio.decoder.aac' already exists, ignoring this one.
Run Code Online (Sandbox Code Playgroud)

所以我也不知道如何获得MediaCodec。

android media-player android-mediaplayer

5
推荐指数
1
解决办法
2854
查看次数

使用 MediaRecorder 写入缓冲区或 FIFO

我正在开发一个低数据速率 VoIP 类型的项目。我需要以低数据速率捕获音频并将其存储在内部缓冲区或 FIFO 中(而不是文件中)。

我想使用低数据速率 .AMR 编码器,这意味着 AudioRecord 已经过时了。MediaRecorder 看起来完全符合我的要求,只是它似乎写入文件。

MediaRecorder 采用 FileDescriptor...有什么方法可以编写一个实现 FileDescriptor 接口的类...充当字节同步...但不是将它们发送到文件,而是将它们存储在缓冲区中?FileDescriptor 上的文档明确指出应用程序不应该编写自己的应用程序,但为什么不呢?无论如何都可能吗?

http://docs.oracle.com/javase/1.4.2/docs/api/java/io/FileDescriptor.html

简而言之,我想开发自己的流,并欺骗 MediaRecorder 向其发送数据。也许会做一些棘手的事情,在同一个 APK 中打开套接字的两端并为 MediaRecorder 提供要写入的套接字?使用套接字作为我的 FIFO?我对此有点陌生,因此非常感谢任何帮助/建议。

我有一个关于 RX 方面的相关问题。我想要一个为 MediaPlayer 提供数据的缓冲区/fifo。我可以欺骗 MediaPlayer 接受来自我自己的专有流提供的缓冲区的数据吗?

audio android media-player mediarecorder android-mediarecorder

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

使用ExecutorService的Java应用程序永远不会关闭

我正在尝试编写一个程序,将几个java工作线程之间的工作分开.问题是,当我从命令行运行它时,它永远不会返回.我没有得到我的提示,最终必须按ctrl-c关闭程序.

我把它简化为以下简单的案例

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

public class TestExeServ {

    private class ExpensiveTask implements Callable<Integer>{
        private final String msg; 
        public ExpensiveTask(String str){
            this.msg = str;
        }

        @Override
        public Integer call()  {
            System.out.println( "My message was " + msg);
            return 1;
        }
    }

    private void run()
    {
        final ExecutorService exeServ = Executors.newFixedThreadPool(2);
        Future<Integer> result = exeServ.submit(new ExpensiveTask("Hello!") );
        try {
            System.out.println( " Task is done, it returned " + result.get());
        } catch (Exception e) {
            e.printStackTrace();
        } …
Run Code Online (Sandbox Code Playgroud)

java multithreading executorservice completable-future

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