小编Aly*_*hak的帖子

如何强制Android Studio使用更新的NDK库进行构建,而无需清理和构建整个项目?

如何使用更新的NDK共享库(.so)文件强制Android Studio构建我的应用程序,而无需先清理整个项目?

Android Studio必须有一些机制可以检测到共享库已更新并使用最新的库.如果我做一个Build-> Clean Project然后做一个Run-> Run'app'它会使用新版本的库,但是它也需要做很多不必要的工作,因为没有java来源已经改变.即使是Run-> Clean和Rerun'app'也不会使用新库.(!!!)

android build shared-libraries android-studio build.gradle

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

如何修复 Chrome 浏览器扩展中的 Native Host Has Exited 错误 -- Native Messaging

如何修复 Mac 版 Chrome 浏览器扩展中的“本机主机已退出”错误?Native Messaging上的文档在底部特别提到了这个错误,并提出了一个可能的原因,但它的陈述很笼统(“这很可能是从你的本地消息传递主机发起的”),目前还不清楚尝试做什么来解决这个。

终端中的日志输出(如果您从 Mac 终端启动 Chrome,您可以查看日志信息)让我相信本机主机应用程序的进程本身从未成功启动。我不断得到:

LaunchProcess: failed to execvp:
/Users/mycomputer1/Documents/myhost.app
Run Code Online (Sandbox Code Playgroud)

但是,将“本机主机已退出”打印到后台javascript页面的控制台的实际代码是:

function onDisconnected() {
  console.log("Inside onDisconnected(): " + chrome.runtime.lastError.message);
  port = null;
}
Run Code Online (Sandbox Code Playgroud)

onDisconnected() 侦听器实际上是作为调用 connectNative() 的结果而调用的,我根据文档在这里完成了该操作:

chrome.runtime.onMessageExternal.addListener(
function(request, sender, sendResponse) {
//var imgdata = JSON.stringify(request.imgdata);
//process it somehow here

    port = chrome.runtime.connectNative("com.allinlearning.ailhost");

    if (port)
    {
       console.log("connectNative() returned a non-null port");
    }
});
Run Code Online (Sandbox Code Playgroud)

我知道 connectNative() 在某个级别上成功,因为它返回一个有效的端口。但是,connectNative() 继续尝试定位本机主机应用程序并尝试启动它。文档表明主机应用程序是罪魁祸首,以某种方式启动了 Chrome 和本机应用程序之间的“管道”中断,尽管我的主机应用程序根本没有实现与 stdout 或 stdin 的通信。此外,Chrome 日志消息(“LaunchProcess: failed to execvp:”)似乎表明我的 Mac 应用程序从未成功启动。

还有更多:我在网上找到的一些源代码(可能是过时的?源文件)准确地揭示了这个“本机主机已经退出”消息的来源,并且一项检查表明了为什么谷歌浏览器的代码正在关闭。在 HandleReadResult() …

javascript macos google-chrome google-chrome-extension chrome-native-messaging

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

OkHttp3 SocketTimeoutException(在Android应用程序中) - 如何为异步请求设置读取超时?

尝试OkHttp3异步Get时,我不断收到java.net.SocketTimeoutException.这表明我没有将读取超时值设置得足够高(我认为默认值是10秒).

更大的问题是"如何防止这种异常?" 但是,除非有人有更好的初始策略,否则我的直接问题是,"如何为请求设置读取超时值?"

在我的代码中,我使用了Okttp Recipes页面中的信息

注意我的try-catch的前两行被注释掉了.那是因为我不能使用我需要的那种构建器(一个能够设置超时值,OkHttpClient.Builder)来添加头信息(Request.Builder).

我的代码看起来像这样:

    m_client = new OkHttpClient();


    try
    {
        //OkHttpClient.Builder bldr = m_client.newBuilder();
        //bldr.readTimeout(0, TimeUnit.SECONDS);

        Request.Builder reqBuilder = new Request.Builder();

        reqBuilder.addHeader("authorization", getToken());

        Request request = reqBuilder.url("http://plusdev.kooklah.com/api/v2_1/items/get").build();

        m_client.newCall(request).enqueue(new Callback()
        {
            @Override
            public void onFailure(Call call, IOException e)
            {
                Log.i("Logit", "Inside onFailure() -- IOException: " + e.getMessage() + " ----- stack trace: " + UtilGen.exceptionToString(e));

                runOnUiThread(new Runnable()
                {
                    @Override
                    public void run()
                    {
                       // do stuff on UI thread
                    }
                });
            }

            @Override
            public void onResponse(Call call, …
Run Code Online (Sandbox Code Playgroud)

java android asynchronous socket-timeout-exception okhttp3

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

如何消除iOS UILabel对象中NSAttributedString(从HTML转换)的多余换行符?

我有一些表格视图单元格需要显示我们服务器上的一些简单html。将html转换为NSAttributedString,以便可以将其显示在单元格上的UILabel对象中。但是当表格视图绘制单元格时,UILabel对象似乎在它们的末尾添加了一些换行符。请注意此处的额外空间:

在此处输入图片说明

(顺便说一句,图片提供了两个tableview单元,因为我尝试了两种不同形式的html,并且在两种情况下似乎都插入了换行符)我认为这可能是由于我的布局所致,也许UILabel被迫被其高度布局,并且不能根据分配的文本自行调整大小/缩小。但是,当我为同一标签提供一个简单的NSAttributedString时,它就是这样创建的:

 sRet = [[NSAttributedString alloc] initWithString:@"[Dummy text string 111]"];
Run Code Online (Sandbox Code Playgroud)

(黄色)UILabel确实会像这样缩小响应:

在此处输入图片说明

几乎表明我的布局允许UILabel根据分配给它的文本自由调整大小。

下面是当我将它们记录到控制台时分配给标签的HTML及其结果NSAttributedString值。这些对应于您在上方第一张图片中的黄色UILabel对象中看到的内容。这是将html转换为属性字符串并分配的html:

<h2>Student did poorly</h2>

<p><span style="font-family:comic sans ms,cursive;"><span style="font-size:14px;">Student did ok</span></span></p>
Run Code Online (Sandbox Code Playgroud)

这是对应的属性字符串:

Student did poorly
{
    NSColor = "kCGColorSpaceModelRGB 0 0 0 1 ";
    NSFont = "<UICTFont: 0x7fce3f8798e0> font-family: \"TimesNewRomanPS-BoldMT\"; font-weight: bold; font-style: normal; font-size: 18.00pt";
    NSKern = 0;
    NSParagraphStyle = "Alignment 4, LineSpacing 0, ParagraphSpacing 0, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0, FirstLineHeadIndent 0, LineHeight 22/0, LineHeightMultiple 0, LineBreakMode 0, Tabs (\n), DefaultTabInterval 36, Blocks …
Run Code Online (Sandbox Code Playgroud)

html nsattributedstring uilabel ios uistackview

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

如何在 cmake 项目中使用 emscripten 生成位码(.bc 文件)?

我有一个用 cmake 构建的 c++ 项目。它编译和链接很好。目标是使用 Emscripten 从中生成将在浏览器中运行的代码。

从上Emscripten网站上的文档在这里可以发现:

在此处输入图片说明

运行前两个命令(emconfigure 和 emmake)后,看似成功,我在任何地方都没有任何 .bc 文件,尽管它实际上确实生成了 .js 和 .wasm 文件。文档暗示 .js 文件只会由执行第三个命令 ./emcc 产生。

在您找到的同一文档页面上再往下一点:

Make 生成链接的 LLVM 位码。它不会在链接期间自动生成 JavaScript,因为所有文件都必须使用相同的优化和编译器选项进行编译——在从 bitcode 到 JavaScript 的最终转换中这样做是有意义的。

所以它似乎应该产生一些位码。这该怎么做?

(我确实按照那些文档的建议使用了 VERBOSE 命令,虽然我没有看到使用 emcc 而不是本机编译器,但正在使用 em++,这似乎与 emcc 大致相同。)

c++ macos terminal emscripten

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

如何阻止Android导航抽屉自动打开?

如何阻止 Android 应用程序中的导航抽屉自动打开?

它曾经工作得很好。一开始是看不见的,后来可以滑到可见的地方。但我需要一个标题。起初它只是一个ListView。修改抽屉 xml(见下文)以在列表视图上方为其添加标题后不久,它就开始自动打开。我当然没有在代码中添加任何内容,例如 my_nav_drawer.openOnStartup()。

<!-- The navigation drawer -->
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">

<!-- The main content view -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="@drawable/ail_background_gradient"
    tools:context="com.allinlearning.assist_android.HomeScreenActivityFragment">

    <ImageView
        android:id="@+id/imgViewLogo"
        android:src="@drawable/ail_logo"
        android:layout_margin="10dp"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:scaleType="fitXY"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="ALL In Learning"
        android:id="@+id/textViewLogo"
        android:layout_margin="10dp"
        android:layout_below="@+id/imgViewLogo"
        android:layout_centerHorizontal="true"
        android:textSize="@dimen/font_size26"
        android:textStyle="bold" />

    <ImageButton
        android:id="@+id/imgBtnGradeAssessment"
        android:src="@drawable/grade_assessment"
        android:layout_width="100dp"
        android:layout_height="95dp"
        android:scaleType="fitXY"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@+id/textViewGradeAssessment"
        android:layout_toStartOf="@+id/textViewGradeAssessment" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Grade"
        android:id="@+id/textViewGradeAssessment"
        android:textColor="@color/white"
        android:textSize="@dimen/font_size28"
        android:layout_centerVertical="true"
        android:layout_alignRight="@+id/imgViewLogo"
        android:layout_alignEnd="@+id/imgViewLogo" />

    <ImageButton …
Run Code Online (Sandbox Code Playgroud)

android xml-layout navigation-drawer

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

如何使用POCO使用HTTP基本身份验证创建HTTP Post?

我正在尝试使用POCO制作带有HTTP基本身份验证的HTTP帖子(明文用户名和密码).我找到了一个Get的例子,并尝试修改它,但作为一个新手,我想我已经把它毁了它的用处.有人知道怎么做吗?

是的,我已经看到了另一个问题:POCO C++ - NET SSL - 如何发布HTTPS请求,但我无法理解它是如何尝试实现用户名和密码部分的.我也不明白"x-www-form-urlencoded"的用法.邮政需要这个吗?我没有表格.只想用用户名和密码参数POST到服务器.

passwords post http basic-authentication poco-libraries

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

如何在混合代码Objective-C/C++文件(.mm文件)中使用PHPhotoLibrary?

我试图在iOS项目中使用PHPhotoLibrary类,但需要在我的一个混合代码Objective-C/C++文件中使用它.我得到一个构建错误bc显然所需的导入是不正确的.这里的Apple文档清楚地表明要使用@import Photos,所以在我的构建设置中,我打开了"启用模块(C和Objective-C)"并添加了@import Photos和我的其他导入.然而,这并没有解决Xcode对我使用@import Photos的反对意见.问题是,作为这太问题的职位之一在这里解释了,你只能使用@import照片风格包括.mm文件.

(我不使用Swift,只使用Objective-C并在几个文件中混合使用Objective-C和C++)

那我怎样才能正确导入/包含在我的.mm文件中,以便我的PHPhotoLibrary代码可以构建?

xcode objective-c include ios phphotolibrary

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

如何使用-v调用查看有关cmake链接器错误(未定义符号)的详细信息?

我如何特别地使用-v调用来查看有关cmake链接器错误的详细信息?我发现了两个有关使用此选项的问题,但是一个问题是针对Xcode构建的,另一个问题是针对NDK构建的。他们在这里:

使用-v查看调用?

如何使用cmake -v调用来帮助查找链接器错误

我在OSX Mojave上。我正在使用标准的cmakelists.txt方法,错误是这样的:

Undefined symbols for architecture x86_64:
   "Image::createImage(int, int, int)", referenced from:
       _main in tutorial.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

SO问题中的一条注释显示了我要执行的操作:

...you could use -v to see the linker invocation to see what's going wrong. It would show you this link line:

"/usr/bin/ld" -demangle -dynamic -arch x86_64 
    -macosx_version_min 10.6.8 -o a.out -lcrt1.10.6.o
    /var/folders/zl/zlZcj24WHvenScwjPFFFQE+++TI/-Tmp-/cc-hdOL8Z.o
    -lSystem /Developer/usr/bin/../lib/clang/3.0/lib/darwin/libclang_rt.osx.a
Run Code Online (Sandbox Code Playgroud)

(我是cmake菜鸟新手)我已经在cmakelists.txt中尝试了以下所有方法,但它们均无效:

add_link_options(-v)
add_link_options("-v")
target_link_options(myexec PUBLIC …
Run Code Online (Sandbox Code Playgroud)

c++ macos cmake linker-errors undefined-symbol

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

如何让Xcode在不匹配的返回类型上生成警告(或错误)?

我只是在方法的返回类型的类型中进行了代码更改,并指望编译器显示警告,这将允许我找到并修复现在不匹配的位置.但没有警告.在我的设置中,我发现所有构建类型的"不匹配的返回类型"已经是"是",因此我决定将其更改为"是(视为错误)"并进行重建.构建结果中仍然没有任何迹象.

然后我将"将警告视为错误"更改为"是",这会产生一些有用的错误消息,但没有不匹配的警告.也许我对编译器和Objective-C返回类型一无所知,但是当我的方法指定应返回NSNumber*时,似乎不应该接受bool.

这是我的代码:

+(NSNumber*) compilerCompletelyFineWithThis
{
    if ([m_session tryThis])
    {
        return [m_session goGetSumthin];
    }
    else
        return false;
}
Run Code Online (Sandbox Code Playgroud)

文档建议不匹配的返回类型与GCC_WARN_ABOUT_RETURN_TYPE相关联,但不清楚它强制执行哪些规则.

在我的构建设置的警告部分下面的图片中,请注意相关设置.我为所有构建打开了"将警告视为错误"和"不匹配的返回类型".

在此输入图像描述

当我违反方法定义和调用代码之间的这种契约时,有没有办法让Xcode让我知道?

xcode compiler-errors objective-c compiler-warnings type-mismatch

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