如果没有Managed by google像blogger模板那样的托管/自己的服务器,我正在寻找设置FCM服务器协议的方法,并设置项目的依赖项.
我在这个问题中看到了.一些答案包含类似于使用"okhttp3"的改装代码的代码
String SCOPE = "https://www.googleapis.com/auth/firebase.messaging";
String FCM_ENDPOINT
= "https://fcm.googleapis.com/v1/projects/zoftino-stores/messages:send";
GoogleCredential googleCredential = GoogleCredential
.fromStream(new FileInputStream("firebase-private-key.json"))
.createScoped(Arrays.asList(SCOPE));
googleCredential.refreshToken();
String token = googleCredential.getAccessToken();
final MediaType mediaType = MediaType.parse("application/json");
OkHttpClient httpClient = new OkHttpClient();
Request request = new Request.Builder()
.url(FCM_ENDPOINT)
.addHeader("Content-Type", "application/json; UTF-8")
.addHeader("Authorization", "Bearer " + token)
.post(RequestBody.create(mediaType, jsonMessage))
.build();
Response response = httpClient.newCall(request).execute();
if (response.isSuccessful()) {
log.info("Message sent to FCM server");
}
Run Code Online (Sandbox Code Playgroud)
目前我在我的Android应用程序中使用blogger api通过使用改造和REST API作为json对象来集成博客内容.这是我用来检索博客的BloggerAPI类
public class BloggerAPI {
public static final String BASE_URL …Run Code Online (Sandbox Code Playgroud) 据我所知,ViewModel 应该与 UI/View 隔离,并且只包含观察来自服务器或数据库的数据的逻辑
在我的应用程序中,我使用了 REST API“改造”和博主 API,并尝试将当前代码迁移/升级到 MVVM,但存在一些问题,让我们转到代码
BloggerAPI 类
public class BloggerAPI {
private static final String BASE_URL =
"https://www.googleapis.com/blogger/v3/blogs/4294497614198718393/posts/";
private static final String KEY = "the Key";
private PostInterFace postInterFace;
private static BloggerAPI INSTANCE;
public BloggerAPI() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
postInterFace = retrofit.create(PostInterFace.class);
}
public static String getBaseUrl() {
return BASE_URL;
}
public static String getKEY() {
return KEY;
}
public static BloggerAPI getINSTANCE() {
if(INSTANCE == null){
INSTANCE = new BloggerAPI(); …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建 GUI 示例,当用户单击按钮时删除文件和/或目录,但我看到文件被永久删除,如何使其移动到回收站而不是这个
if (File_path.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Please select a file or directory", "Info", JOptionPane.INFORMATION_MESSAGE);
} else {
File FileName = new File(File_path.getText());
boolean FileDeleted = FileName.delete();
if (FileDeleted == true) {
JOptionPane.showMessageDialog(null, "File Deleted Successfully", "Info", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "File Not Found", "Info", JOptionPane.INFORMATION_MESSAGE);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试按照此处使用自定义证书的 Android 文档进行操作。所需的网络配置文件是:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config>
<trust-anchors>
<certificates src="@raw/extracas"/>
<certificates src="system"/>
</trust-anchors>
</base-config>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)
我已经创建了 network_security_config.xml 并将引用 a 添加ndroid:networkSecurityConfig="@xml/network_security_config"到我的清单中。我有需要包含的 .crt 文件,但我有两个问题:
我无法在我的原始文件夹中创建目录,当我这样做时,它会在我的文件系统中创建目录,但不在项目中的原始资源目录中。
代替目录,我只是直接在原始文件夹中引用我的 .crt 文件,但是当我尝试引用证书时,这是我的 network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config>
<trust-anchors>
<certificates src="@raw/cert_cubic_trusted_ca-sha256.crt"/>
<certificates src="system"/>
</trust-anchors>
</base-config>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)我得到一个红色波浪线,错误“缺少 src 资源。”,当我尝试构建时,构建日志输出错误:
AGPBI: {"kind":"error","text":"error: resource raw/certname.crt (aka com.comname.appname:raw/certname.crt) not found.","sources":[{"file":"/Users/205314/project/appname/app/src/main/res/xml/network_security_config.xml","position":{"startLine":5}}],"original":"","tool":"AAPT"}
:app:processDebugResources
:app:processDebugResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:processDebugResources'.
> Failed to process resources, see …Run Code Online (Sandbox Code Playgroud) android android-manifest android-xml android-gradle-plugin android-network-security-config
我有 3 种不同的布局cardsListLayout,titleLayout,cardMagazineLayout将来可能会有更多,用作方法的视图onCreateViewHolder。
我想在onCreateViewHolder方法中的视图之间切换,所以当用户从 AlertDialog 列表中选择时
这个 onOptionsItemSelected 在 MainActivity 那里有菜单项“更改布局”,以便当用户按下它时出现 AlertDialog 列表
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.change_layout) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(getString(R.string.choose_layout));
String[] layouts = {"Title Layout", "Cards List", "Card Magazine Layout"};
builder.setItems(layouts, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int index) {
switch (index) {
case 0: // Title layout
Toast.makeText(MainActivity.this,
"Title layout", Toast.LENGTH_LONG).show();
break;
case 1: // Cards List …Run Code Online (Sandbox Code Playgroud) android android-layout android-viewholder android-recyclerview recyclerview-layout
我试图从我的 Web 应用程序的 api 中获取一个令牌,并在 android studio 中从中解析出用户 ID。我正在使用 jjwt 解码令牌,但遇到了这个问题。我在网上阅读,解决方案说要确保我的“密钥”在 base 64 中,但它仍然导致问题。
我尝试使用编码器和在线编码器并对我的“秘密”的 base-64 字符串进行硬编码,但仍然返回相同的问题。在这里可以找到指向有类似问题的人的链接 github.com/auth0/node-jsonwebtoken/issues/208
final TextView tv = (TextView) findViewById(R.id.tvText);
final String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVjOWYzYWI2NzY2Mjg2NDYyNDY0YTczNCIsIm5hbWUiOiJSYW5keSIsImF2YXRhciI6Ii8vd3d3LmdyYXZhdGFyLmNvbS9hdmF0YXIvMTNhN2MyYzdkOGVkNTNkMDc2MzRkOGNlZWVkZjM0NTE_cz0yMDAmcj1wZyZkPW1tIiwiaWF0IjoxNTU0NTIxNjk1LCJleHAiOjE1NTQ1MjUyOTV9._SxRurShXS-SI3SE11z6nme9EoaD29T_DBFr8Qwngkg";
final String secret = "secret";
String secret64 = "c2VjcmV0";
String encoded = Base64.encodeToString(secret.getBytes(), Base64.DEFAULT);
Jws<Claims> jws;
try {
jws = Jwts.parser() // (1)
.setSigningKey(secret64) // (2)
.parseClaimsJws(token); // (3)
// we can safely trust the JWT
}
catch (JwtException ex) { // (4)
// we *cannot* use the JWT as intended …Run Code Online (Sandbox Code Playgroud) 我刚刚将android Facebook SDK添加到我的项目中,以使用Facebook广告来推广我的应用,并且该应用在启动时崩溃,但出现了此异常
这是日志
E/AndroidRuntime: FATAL EXCEPTION: main
Process: www.pro_cs_is.com, PID: 20307
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/facebook/appevents/InternalAppEventsLogger;
at com.facebook.marketing.internal.MarketingLogger.<init>(MarketingLogger.java:47)
at com.facebook.marketing.internal.MarketingInitProvider.setupCodeless(MarketingInitProvider.java:68)
at com.facebook.marketing.internal.MarketingInitProvider.onCreate(MarketingInitProvider.java:49)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1927)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1902)
at android.app.ActivityThread.installProvider(ActivityThread.java:6528)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:6021)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5927)
at android.app.ActivityThread.access$1200(ActivityThread.java:200)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1673)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6806)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.facebook.appevents.InternalAppEventsLogger" on path: DexPathList[[zip file "/data/app/www.pro_cs_is.com-ewD1U225Ajh1l9uikBkdWg==/base.apk", zip file "/data/app/www.pro_cs_is.com-ewD1U225Ajh1l9uikBkdWg==/split_lib_dependencies_apk.apk", zip file "/data/app/www.pro_cs_is.com-ewD1U225Ajh1l9uikBkdWg==/split_lib_resources_apk.apk", zip file "/data/app/www.pro_cs_is.com-ewD1U225Ajh1l9uikBkdWg==/split_lib_slice_0_apk.apk", zip file "/data/app/www.pro_cs_is.com-ewD1U225Ajh1l9uikBkdWg==/split_lib_slice_1_apk.apk", zip file "/data/app/www.pro_cs_is.com-ewD1U225Ajh1l9uikBkdWg==/split_lib_slice_2_apk.apk", zip file "/data/app/www.pro_cs_is.com-ewD1U225Ajh1l9uikBkdWg==/split_lib_slice_3_apk.apk", …Run Code Online (Sandbox Code Playgroud) android facebook noclassdeffounderror classnotfoundexception facebook-sdk-4.0
我在我的应用程序中使用博主 API、改造和 MVVM,我尝试在用户滚动时使用分页加载更多帖子,这里发生的问题是响应正在加载它自己“相同的列表/相同的十个帖子正在再次加载”
这是我的代码
PostsClient 类
public class PostsClient {
private static final String TAG = "PostsClient";
private static final String KEY = "XYZ sensitive key!";
private static final String BASE_URL = "https://www.googleapis.com/blogger/v3/blogs/4294497614198718393/";
private PostInterface postInterface;
private static PostsClient INSTANCE;
public PostsClient() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
postInterface = retrofit.create(PostInterface.class);
}
public static PostsClient getINSTANCE() {
if(INSTANCE == null){
INSTANCE = new PostsClient();
}
return INSTANCE;
}
public Call<PostList> getPostList(){
return postInterface.getPostList(KEY);
}
}
Run Code Online (Sandbox Code Playgroud)
[ 后 …
我遇到了与这里相同的问题:How to open Android SDK manager fromterminal?
该问题被标记为与此问题重复:How to open then the Android SDK Manager through theterminal?
但是,正如您在评论中看到的那样,它实际上不是重复的,因为问题是不同的。
无论如何,这两个问题的答案都没有解决我的问题。
我已经下载了 Android SDK,仅适用于 Windows 10 的命令行工具。当我运行:时.\sdkmanager.bat,我收到此消息:[=======================================] 100% Computing updates...但没有任何反应。
我已经安装了Java,一切似乎都正常。
在构建应用程序时,我得到以下信息:
[deprecation] mCallbacks in RoomDatabase has been deprecated
Run Code Online (Sandbox Code Playgroud)
不知道如何解决它。这里是依赖项:
implementation "androidx.room:room-runtime:2.1.0-alpha04"
implementation 'androidx.room:room-rxjava2:2.1.0-alpha04'
annotationProcessor "androidx.room:room-compiler:2.1.0-alpha04"
Run Code Online (Sandbox Code Playgroud)
是因为我正在运行Alpha版本吗?