我正在尝试为简单的NDK项目创建一个.h头文件.使用cygwin我浏览到myprojectDIR\jni目录,然后执行以下命令:
javah -o com_myproject_MyActivity.h -classpath myprojectDIR\bin\classes com.myproject.MyActivity
Run Code Online (Sandbox Code Playgroud)
然后出现此错误消息:
Error: cannot access android.app.Activity
class file for android.app.Activity not found
Run Code Online (Sandbox Code Playgroud)
我在MyActivity类中有一个本机方法,所以我尝试创建一个名为NativeAccess(不扩展android SDK中的任何类)的新类,它工作正常,.h文件创建,ndk-build和测试设备成功!
所以我的问题是我需要在我创建的android活动和服务中使用我的本机方法,但我不能这样做因为Javah命令无法从android-sdk本身访问类.请注意我正在使用(Windows-7 x64),我有这些环境变量:
ANDROID_NDK : C:\Android\android-ndk-r7b
ANDROID_SDK : C:\Android\android-sdk
ANT_HOME : C:\ANT\apache-ant-1.8.3
JAVA_HOME : C:\Program Files\Java\jdk1.7.0_02
PATH : %JAVA_HOME%\bin;%ANDROID_SDK%\tools;%ANDROID_SDK%\platform-tools;%ANDROID_NDK%;%ANT_HOME%\bin; (other unrelated stuff)
Run Code Online (Sandbox Code Playgroud)
提前致谢
我有一个使用Firebase的项目,我需要为项目添加一个所有者.这是我加他的方式:
现在它向我显示权限列表中的用户,并显示以下消息:
邀请已发送.待接受.
我看到了这个答案,其中说:
新添加的用户有时可能无法收到电子邮件邀请.所以一定要让他们知道你添加了它们.
我让用户在Skype上与我分享他的屏幕,这就是:用户确实收到了一封电子邮件邀请,当他按下接受邀请时,将打开firebase控制台页面,并在网址中显示项目名称!
但它没有显示我分享的项目.它只是加载Firbease控制台,显示他以前拥有的不同项目!
我仍然看到这个消息:
邀请已发送.待接受.
我在多部分/表单数据请求中将内容发布到服务器。并且我发布的数据包含多个参数,包括文件数组参数 (files[])。
使用邮递员,我将参数和文件设置为:
first-parameter=text content
second-parameter=text content
files[0]={first selected file}
files[1]={second selected file}
Run Code Online (Sandbox Code Playgroud)
在邮递员上提交这个请求总是成功的,文件上传成功。
当我在邮递员上生成代码片段时,结果如下:
POST /api/*******/new HTTP/1.1
Host: ***.***.***.*** ip-address
Authorization: {authorization header}
Cache-Control: no-cache
Postman-Token: d15f13f1-4a65-81d1-bf91-f5accd1b1dd0
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="first-parameter"
first-parameter-value
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="second-parameter"
second-parameter-value
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="files[0]"; filename=""
Content-Type:
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="files[1]"; filename=""
Content-Type:
------WebKitFormBoundary7MA4YWxkTrZu0gW--
Run Code Online (Sandbox Code Playgroud)
在 Android 上,我将 Retrofit 与 HttpLoggingInterceptor 库一起使用,并在发布请求时使用 @PartMap 注释:
//API定义:
interface ApiDefinitions {
@Multipart
@POST("*******/new")
Call<ApiResponse> submitNew(@Header("Authorization") String authHeader,
@PartMap Map<String, RequestBody> …Run Code Online (Sandbox Code Playgroud) 任何人都可以向我解释这段代码中有什么问题:
System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sss'Z'").parse("2015-04-22T19:54:11.827Z"));
System.out.println(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sss'Z'").parse("2015-04-22T19:54:11.0Z"));
Run Code Online (Sandbox Code Playgroud)
输出是:
Wed Apr 22 20:07:47 GMT+02:00 2015
Wed Apr 22 19:54:00 GMT+02:00 2015
Run Code Online (Sandbox Code Playgroud)
请注意输入时间中有毫秒的分钟差异.
android ×3
android-ndk ×1
date ×1
firebase ×1
java ×1
javah ×1
permissions ×1
retrofit2 ×1
sharing ×1