小编Too*_*dos的帖子

使用 JNI 和 C++ 将 Unicode const char* 转换为 JString

简单的问题。如何使用 JNI 和 C++ 从 unicode const char* 中获取 jstring?

\n\n

这是我的问题,以及我已经尝试过的:

\n\n
const char* value = (some value from server);\n(*env)->NewStringUTF(value);\n
Run Code Online (Sandbox Code Playgroud)\n\n

这里的问题是 NewStringUTF 返回一个 UTF 字符串,并且它不喜欢某些非 UTF8 字符(有点明显,但值得简单尝试一下)。

\n\n

尝试 2,使用 NewString:

\n\n
const char* value = (some value from server);\n(*env)->NewString(value, strlen(value));\n
Run Code Online (Sandbox Code Playgroud)\n\n

虽然 NewString 接受并返回 unicode 字符串,但 strlen(value) 方法不起作用,因为它需要 jsize 参数,而不仅仅是一个好的 ol' size_t 或长度。

\n\n

我们如何获得 jsize?根据(非常少量的)文档和在线示例,您可以从 jIntArray 中获取 jsize。\n我找不到有关如何将 const char* 转换为某种类型的 jarray 的信息,这可能是无论如何,这是一个坏主意。

\n\n

另一种选择是从 size_t 中的 int 中获取 jsize,我也还没有成功。

\n\n

有没有人遇到过这个问题,或者对如何解决这个问题有建议?\n看来 jsize 是我在 unicode 转换中缺少的关键。\n另外,我正在使用 …

c++ unicode java-native-interface android-ndk

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

iOS - 如何将AppDelegate的ManagedObjectContext传递给来自NavigationView的UIViewController

我正在努力应对核心数据概念,我需要一些澄清.

我正在使用Storyboards,我有2个视图.第一个视图嵌入在导航控制器中,第二个视图只是一个来自模态segue的UIViewController.在AppDelegate中,我使用以下代码将managedObjectContext传递给第一个视图:

UINavigationController *nav = (UINavigationController *) self.window.rootViewController;
JobListTableViewController *jltvc = (JobListTableViewController *)[[nav viewControllers]objectAtIndex:0];
jltvc.managedObjectContext = self.managedObjectContext;
Run Code Online (Sandbox Code Playgroud)

问题是,现在我还需要将adminObjectContext从AppDelegate传递到我的第二个视图,但我不知道如何掌握它.这样做,只是失败,因为没有索引1:

AddJobsViewController *ajvc = (AddJobsViewController *)[[nav viewControllers]objectAtIndex:1];
Run Code Online (Sandbox Code Playgroud)

我无法发布我的故事板的截图,因为我没有足够的stackoverflow声誉:(

有关此核心数据/授权问题的任何帮助将受到高度赞赏.谢谢.

iphone core-data objective-c ios

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

Mac OS Yosemite 上缺少 JDK 1.8 虚拟机

我有 mac os 10.10 Yosemite,我正在尝试安装适用于 Android studio 的所有工具。我已经安装了苹果的java包和Oracle的jdk 1.8。

但是,/System/Library/Java 中的 JavaVirtualMachines 文件夹不显示 1.8.0jdk。

我只是从 Oracle 安装了 .dmg 文件并运行它。

如果我跑

java -version
Run Code Online (Sandbox Code Playgroud)

我明白了:

java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
Run Code Online (Sandbox Code Playgroud)

这也是我的 Java 安装的文件夹视图: 在此输入图像描述

知道如何获得 1.8(甚至 1.7)虚拟机,以便我可以在 Android Studio 中进行构建。

java macos android

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

React Native - 无法构建DependencyGraph:无法读取null的属性"root"

我试图让React Native第一次运行他们的hello world应用程序(AwesomeProject),我在控制台中收到此错误:

Failed to build DependencyGraph: Cannot read property 'root' of null TypeError: Cannot read property 'root' of null at index.js:16:60 at tryCallOne (/Users/Eduardo/Documents/Code/Personal/ReactNative/AwesomeProject/node_modules/promise/lib/core.js:37:12) at /Users/Eduardo/Documents/Code/Personal/ReactNative/AwesomeProject/node_modules/promise/lib/core.js:123:15 at flush (/Users/Eduardo/Documents/Code/Personal/ReactNative/AwesomeProject/node_modules/asap/raw.js:50:29) at _combinedTickCallback (node.js:370:9) at process._tickCallback (node.js:401:11) ~ Process terminated. Press <enter> to close the window

首先,我是一个移动开发人员(本机ios和android),我知道关于节点的小队.

我按照React Native 的Getting Started页面,用npm install和安装了npmnpm install -g

当我尝试单独启动节点服务器时,node server我得到了这个:

$ node server
module.js:341
throw err;
^

Error: Cannot find module '/Users/Eduardo/Documents/Code/Personal    /ReactNative/AwesomeProject/server'
at Function.Module._resolveFilename (module.js:339:15)
at Function.Module._load …
Run Code Online (Sandbox Code Playgroud)

node.js ios npm react-native

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

RxJava和RxAndroid - 我需要两者吗?

有一个类似的问题在这里,但它并没有真正回答这个问题.

我一直在我的Android应用程序中使用RxJava和RxAndroid,现在该项目正常运行.

然后我删除了RxJava并且只留下了RxAndroid,项目继续工作.但是,我不太了解RxJava和RxAndroid是否知道从长远来看是否只会丢失RxAndroid.

我读到的关于RxAndroid的一切都是它是RxJava的扩展,但是这是一个真正的扩展,意味着RxJava拥有一些特定的东西(比如AndroidSchedulers)吗?

反正我还需要两个吗?保持两个依赖关系有缺点吗?

谢谢.

android rx-java rx-android

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

jMeter 未将变量应用于标头管理器

我在 Mac 上使用 Apache JMeter 3.2 r1790748。我有一个setUp Thread Group身份验证电话。调用工作并正确输出令牌。现在我需要将该令牌传递给HTTP Header Manager我正在进行的所有调用。

首先,这是我的令牌 json 输出:

{
    "access_token": "aaaaaa555555555",
    "token_type": "Access",
    "user_id": "5555"
}
Run Code Online (Sandbox Code Playgroud)

这是我的HTTP Header manager样子:

1 值: Authorization:Bearer ${access_token}

我的网络电话:

GET https://my_server.com/some_path

GET data:

[no cookies]

Request Headers:
Connection: close
Authorization: Bearer ${access_token}
Host: my_server.com
User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_91)
Run Code Online (Sandbox Code Playgroud)

如您所见,该变量access_token并未被 setup 调用中的值替换。

我试过的:

BeanShell 后处理器:

我创建了这个脚本,它实际上解析并access_token正确输出:

import org.apache.jmeter.protocol.http.control.Header;
import net.minidev.json.JSONObject;
import net.minidev.json.parser.JSONParser;


String jsonString = prev.getResponseDataAsString();
log.info("jsonString = " …
Run Code Online (Sandbox Code Playgroud)

json jmeter

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

尝试使用Intents发送二进制内容时的TransactionTooLargeException

我需要将二进制内容从我的应用程序发送到设备中打开该文件类型的任何应用程序.

我按照这些说明操作:https: //developer.android.com/training/sharing/send.html#send-binary-content

这是我的代码:

final FileType fileType
final File file;

final Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

intent.putExtra(Intent.EXTRA_STREAM, FileProvider.getUriForFile(AncestryApplication.getAppContext(), AncestryApplication.getAppContext().getApplicationContext().getPackageName() + ".provider", file));

intent.setType(fileType.getMimeType());
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

一些东西:

  1. 如果我将意图操作从ACTION_VIEW更改为ACTION_SEND,我会得到错误的应用程序列表以打开我的文件
  2. ACTION_SEND似乎有效,但只适用于较小的文件大小
  3. intent.setDataAndType()似乎在OS M和更低的设备上工作正常.在NI上也是如此TransactionTooLargeException

最后,这是我需要完成的事情:

  • 我已经保存了一个文件,它存储在 file:///storage/emulated/0/Download/TempFile.html
  • 由于文件可能太大,我需要的文件只是位置发送给第三方应用程序(如Adobe PDF阅读器)打开文件
  • 没有M或更低的问题,N上的大量问题

关于我可能做错的任何想法?我已经尝试解决这个问题几天了,我已经阅读了大量的教程和SO建议,没有任何最终答案.

谢谢.

编辑:这是我的堆栈跟踪:

AndroidRuntime: FATAL EXCEPTION: main
Process: com.myapp.android.apps.myapp, PID: 26785
java.lang.RuntimeException: android.os.TransactionTooLargeException: data parcel size 27943540 bytes
  at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3752)
  at android.os.Handler.handleCallback(Handler.java:751)
  at android.os.Handler.dispatchMessage(Handler.java:95)
  at android.os.Looper.loop(Looper.java:154)
  at android.app.ActivityThread.main(ActivityThread.java:6077)
  at java.lang.reflect.Method.invoke(Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

Caused by: android.os.TransactionTooLargeException: data …
Run Code Online (Sandbox Code Playgroud)

android android-intent

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