我正在尝试实现一个本机模块,该模块在react native中提供连接服务。但是我面临一个错误。由于我不是一名android / java开发人员,因此无法找到以下错误的原因。
E:\projects\deets-mobile-cp\node_modules\react-native-connection-service\android\src\main\java\com\genm\CallConnection.java:10: error: cannot find symbol
@TargetApi(Build.VERSION_CODES.O_MR1)
^
symbol: variable O_MR1
location: class VERSION_CODES
E:\projects\deets-mobile-cp\node_modules\react-native-connection-service\android\src\main\java\com\genm\CallConnection.java:14: error: cannot find symbol
setConnectionProperties(PROPERTY_SELF_MANAGED);
^
symbol: variable PROPERTY_SELF_MANAGED
location: class CallConnection
Run Code Online (Sandbox Code Playgroud)
CallConnection.java
package com.genm;
import android.annotation.TargetApi;
import android.os.Build;
import android.telecom.Connection;
import android.util.Log;
import static android.content.ContentValues.TAG;
@TargetApi(Build.VERSION_CODES.O_MR1)
public class CallConnection extends Connection{
public CallConnection(){
setConnectionProperties(PROPERTY_SELF_MANAGED);
setAudioModeIsVoip(true);
}
@Override
public void onAnswer(){
Log.d(TAG, "On answer to the call");
}
}
Run Code Online (Sandbox Code Playgroud) Google Play 拒绝我的 React Native 应用程序并出现错误:
ERROR (Jar signer CERT.RSA): No APK Signature Scheme v2 signature from this signer ERROR (APK Signature Scheme v2 signer #0): No JAR signature from this signer.
看起来需要使用 v2 方案签署我的应用程序,但官方网站只有 v1 方案手册(https://facebook.github.io/react-native/docs/signed- apk-android.html),这对于 google play 来说还不够。
如何使用 v2 方案签署我的 React Native 应用程序?
我在app/build gradle文件中将我的依赖项标记为24.2.1,但是当我运行"gradlw app:dependencies"时,它显示25.1.0已解决.不知道这是怎么发生的,因为我没有添加任何依赖项25.1.0?有什么方法可以找到最新的库
gradlw app:dependencies
-- com.android.support:appcompat-v7:24.2.1 -> 25.1.0
+--- com.android.support:support-annotations:25.1.0
+--- com.android.support:support-v4:25.1.0
Run Code Online (Sandbox Code Playgroud)
我所拥有的: 我有带有socket.io实现的Android 应用程序。服务器在 node.js 上运行。服务器 IP 在应用程序中进行了硬编码。客户端与服务器成功通信 - 它们发送和接收消息。
我在客户端中使用的 IO.socket 版本: ('io.socket:socket.io-client:1.0.0')
我需要得到什么:我的问题是在客户端收到确定的消息后,我必须更改客户端连接到的服务器 IP。
简化的客户端套接字行为更像是这样:
socket.on("msg", new Emitter.Listener() {
@Override
public void call(Object... args) {
try {
switch (msg){
case "1":
keepOnListeningFirstServer();
break;
case "2":
connectToAnotherServer();
break;
...
Run Code Online (Sandbox Code Playgroud)
我设法实现的是,在特定的服务器命令 ( msg = 2) 客户端连接到第二台服务器后,但客户端仍连接到第一台服务器(客户端仍在侦听来自第一台服务器的命令)。实际上,我认为客户端创建了第二个套接字,但没有正确关闭第一个套接字。
在这种情况下,客户端仍然从第一个服务器接收消息,但它会向新的第二个服务器发送响应。很奇怪,但这是我在这里设法做到的最远。
我试图断开客户端并启动新的侦听器是在客户端上调用:
socket.disconnect();socket.close();socket.off();然后创建新的套接字并连接它:
socket = IOSocket.getInstance(socketIP).getSocket();
socket.connect();
Run Code Online (Sandbox Code Playgroud)
所以我的问题一般是:
任何帮助或建议将不胜感激,所以提前致谢!
因此,按照谷歌的指南,我将依赖项放入 Gradle 中,但之后当我尝试使用此代码初始化它时。
FontRequest fontRequest = new FontRequest(
"com.google.android.gms.fonts",
"com.google.android.gms",
"Noto Color Emoji Compat",
R.array.com_google_android_gms_fonts_certs);
Run Code Online (Sandbox Code Playgroud)
最后一行是错误的,我没有任何这样的数组,所以 Android studio 无法解析它。