小编G. *_*ike的帖子

我可以保持将Eclipse从Indigo升级到Juno的设置吗?

如何在不丢失所有自定义的情况下将Eclipse从Indigo升级到Juno?

我尝试过两种不同的东西,但都不起作用:

  • 从Indigo导出prefs并导入Juno
  • 在Indigo工作区的副本上运行Juno

每次升级都必须从头开始,这太烦人了......

eclipse eclipse-juno

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

DEX和Dalvik是否支持Java二进制兼容性?

我正在构建一个基于Android的系统,需要通过二进制协议发送数据.我希望会有许多版本的多种协议以及维护它们的噩梦.

在我看来,通过使用Java的二进制兼容性,我可以回避大部分版本控制问题.

假设应用程序A依赖于库L. L包含C用于A实现接口的类I.我建立既LA,与定义I(0)的接口I.我安装L(0),并A(0)在设备上.A(0)动态绑定L(0)哪个提供类C(0).

现在,我扩展接口I,添加例如两个新方法.当我尝试编译时L,编译失败,因为C没有实现新方法.我修复L,通过扩展C,它实现了两个新方法.我现在编译L(1)反对I(1),并在设备上安装它.

注意,此时,A不会编译反对I(1).尽管如此,如果这是Java,A(0)将使用C(1)from 绑定并正确运行L(1).

对于Java的实现,JLS第13章二进制兼容性保证了这种行为(以及更多).如果它适用于DEX和Dalvik,那么我可以使一大类协议更改对客户完全不可见.

那么,问题是,DEX和Dalvik是否遵守JLS二进制兼容性规范?如果没有,是否有指定DEX/Dalvik二进制兼容性的文件?

java android dalvik dex

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

在Android Studio中关闭恼人的检查

我正在使用Android Lollypop JobScheduler.Android Studio正在标记此代码:

JobScheduler js = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
Run Code Online (Sandbox Code Playgroud)

......作为一个错误.它汇编很好.然而,工作室认为它了解所有法律服务,并标记它.

我猜这是一个"检查".我搜索了检查错误消息,开始"必须是:Context.POWER_SERVICE之一"并没有找到任何内容.

这引出了我的具体问题:"我怎么能关闭这个,特别是烦人的错误".此外,更一般的问题是:"一般来说,如果检查让我烦恼,我怎么找到它,以便我可以把它关掉?"

intellij-idea android-studio

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

当活动崩溃时会发生什么?

我有一个像这样的服务:

<service
    android:name="com.myFirebaseMessagingService">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT"/>
    </intent-filter>
</service>
Run Code Online (Sandbox Code Playgroud)

然后我实现onBind这样:

  private final IBinder mBinder = new LocalBinder();
  private myListener mListener;


  public class LocalBinder extends Binder {
    LocalService getService() {
      return LocalService.this;
    }
  }

  public void setListener(myListener listener) {
    mListener = listener;
  }    

  @Override
  public IBinder onBind(Intent intent) {
    return mBinder;
  } 

  @Override
  public void onMessageReceived(RemoteMessage remoteMessage) {
    if (mListener != null) mListener.onMessageReceived(remoteMessage);  
  }
Run Code Online (Sandbox Code Playgroud)

这很简单:Activity绑定到Service并设置一个监听器.当服务收到消息时,它只是触发监听器

现在最大的问题是:如果活动突然崩溃会发生什么? 在那种情况下mListener会指出一些不存在的东西,不是吗?

如何,在调用之前mListener.onMessageReceived(remoteMessage),我可以检查绑定的Activity是否还活着?

android ipc android-service android-service-binding bindservice

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

用于同步的空引用(monitor-enter)

当我关闭互联网连接并从 Firebase 应用注销时,我无法退回我的应用。

还得到下一个错误:

2019-11-05 20:26:19.364 5593-5611/com.mandarine.target_list E/System:
    Uncaught exception thrown by finalizer 2019-11-05 20:26:19.3655593-5611/com.mandarine.target_list E/System:
java.lang.NullPointerException: Null reference used for synchronization (monitor-enter)
        at com.android.org.conscrypt.ConscryptFileDescriptorSocket.finalize(ConscryptFileDescriptorSocket.java:1053)
        at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:252)
        at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:239)
        at java.lang.Daemons$Daemon.run(Daemons.java:105)
        at java.lang.Thread.run(Thread.java:764)
Run Code Online (Sandbox Code Playgroud)

它仅在我关闭 Internet 时发生。

我也发现了这个:https : //github.com/google/conscrypt/blob/master/common/src/main/java/org/conscrypt/ConscryptFileDescriptorSocket.java#L1079

但真的不知道该怎么做必须得到

我也做了/gradlew app:androidDependencies并得到:

> releaseUnitTestRuntimeClasspath - Dependencies for runtime/packaging
> +--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.3.50@jar
> +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.50@jar
> +--- com.firebaseui:firebase-ui-auth:4.3.1@aar
> +--- androidx.navigation:navigation-ui-ktx:2.0.0@aar
> +--- androidx.navigation:navigation-ui:2.0.0@aar
> +--- com.google.android.material:material:1.0.0@aar
> +--- me.zhanghai.android.materialprogressbar:library:1.4.2@aar
> +--- androidx.appcompat:appcompat:1.0.2@aar
> +--- androidx.constraintlayout:constraintlayout:1.1.3@aar
> +--- …
Run Code Online (Sandbox Code Playgroud)

android garbage-collection finalizer nullpointerexception kotlin

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

git add 后存储库中缺少文件夹

我正在使用包含软件开发工具包 (SDK) 的文件夹,并尝试使用 git 将其备份到我用作 git 遥控器的笔记本电脑中的另一个文件夹中。我用过git add *。似乎一切正常,我没有收到错误或警告。然后我将遥控器克隆到另一个文件夹中,并尝试编译,但收到错误消息,提示文件丢失。原来是git中缺少一个文件夹。

知道我做错了什么吗?

cd /home/ubuntu/backup
mkdir yamit
cd yamit
git init
git add *
git commit -m "first backup"
git remote add yamit /home/ubuntu/backup/yamit.git
git push -u yamit master
Run Code Online (Sandbox Code Playgroud)

git

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

根据所选的手机语言运行功能

是否可以根据所选的手机语言运行功能?

我有3种支持的语言.所以我有3个不同的功能,我想运行.

谢谢

android locale function

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

缺少logcat消息

我有两节课,A1A2.两者都继承自BaseActivity,而继承自AppCompatActivity.

BaseActivity有大量的日志记录语句跟踪,例如,活动生命周期方法.像这样:Log.d(tag, "in onCreate");

这些消息按预期记录,A1不是从A2!我试过从AS和命令行监视logcat.我可以在几个Android模拟器和几个开发环境中重复这个问题.

如果我只是取代,例如,Log.d(tag, "in onCreate")System.out.println(tag + ": in onCreate")所有的预期消息的出现.

在这一点上,完全神秘莫测.有人对我的日志消息的去向有任何建议吗?

编辑添加:

我已经用Log.d以下方法调用替换了所有调用:

private void log(String message) {
    Log.d("LOGGER", tag);
    Log.d(tag, message);
    System.out.println(tag + ": " + message);
}
Run Code Online (Sandbox Code Playgroud)

以下是两个子类的示例输出:

07-09 10:26:42.036 9657-9657/net.callmeike.android.latest D/LOGGER: A1
07-09 10:26:42.036 9657-9657/net.callmeike.android.latest D/A1: in onCreate
07-09 10:26:42.036 9657-9657/net.callmeike.android.latest I/System.out: A1: in onCreate

07-09 10:27:10.837 9657-9657/net.callmeike.android.latest D/LOGGER: A2
07-09 10:27:10.837 9657-9657/net.callmeike.android.latest I/System.out: …
Run Code Online (Sandbox Code Playgroud)

logging android

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