标签: compatibility

为什么我们需要其他JVM语言

在这里看到除了Java之外还有大量语言在JVM上运行.我对JVM中运行的其他语言的整个概念感到有点困惑.所以:

使用JVM的其他语言有什么好处?

为JVM编写语言/编译器需要什么(在高级术语中)?

如何在JVM中用一种语言(Java除外)编写/编译/运行代码?


编辑:在接受的答案中回答了3个跟进问题(最初的评论).他们在这里重印了易读性:

如果用JPython编写的应用程序如何与Java应用程序交互?

另外,JPython应用程序可以使用任何JDK函数/对象吗?

如果它是Jaskell代码,那么它是一种函数式语言会不会使它与JDK不兼容?

compatibility jvm

23
推荐指数
3
解决办法
4351
查看次数

git svn rebase导致"字节顺序不兼容"错误

以下是我在尝试'git svn rebase'时遇到的错误:

Byte order is not compatible at ../../lib/Storable.pm (autosplit into ../../lib/auto/Storable/_retrieve.al) line 380, at /usr/lib/perl5/5.10/Memoize/Storable.pm line 21
Run Code Online (Sandbox Code Playgroud)

我正在运行的perl版本是:

$ perl --version

This is perl, v5.10.1 (*) built for i686-cygwin-thread-multi-64int
(with 12 registered patches, see perl -V for more detail)
Run Code Online (Sandbox Code Playgroud)

当我在网上搜索" 字节顺序不兼容 "时,我收到很多点击,显示Perl文档说:

这意味着,如果您在Unix或Linux上使用64位整数配置的perl 5.6.0或5.6.1上运行的Storable 1.x写入数据,那么默认情况下这个Storable将拒绝读取它,给出错误字节顺序不兼容.如果你有这样的数据,那么你应该将$ Storable :: interwork_56_64bit设置为一个真值,以使这个可存储的读取和写入文件与旧标题.您还应该将您的数据或与之通信的任何旧版perl迁移到当前版本的Storable.

我不知道的是,如何将此设置$Storable::interwork_56_64bit为真.你能告诉我怎么做吗?

perl compatibility git-svn rebase endianness

22
推荐指数
2
解决办法
3525
查看次数

.NET 4.0引用.NET 2.0程序集时会发生什么?

如果.NET 4.0可执行文件包含对.NET 2.0程序集的引用,.NET 4.0运行时到底做了什么?

.NET 2.0程序集是否与.NET 4.0运行时一起运行(换句话说,.NET 4.0必须与.NET 2.0 100%API兼容),或者该进程是否以某种方式托管.NET 2.0运行时,并且会发生一些神奇的事情.基于.NET 4.0的代码可以透明地访问.NET 2.0类型吗?

compatibility .net-4.0 .net-2.0

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

Python 2与Python 3 - urllib格式

我真的厌倦了试图找出为什么这个代码在Python 2中而不是在Python 3中工作.我只是想抓取一个json页面然后解析它.这是Python 2中的代码:

import urllib, json
response = urllib.urlopen("http://reddit.com/.json")
content = response.read()
data = json.loads(content)
Run Code Online (Sandbox Code Playgroud)

认为 Python 3中的等效代码是这样的:

import urllib.request, json
response = urllib.request.urlopen("http://reddit.com/.json")
content = response.read()
data = json.loads(content)
Run Code Online (Sandbox Code Playgroud)

但它在我脸上爆炸,因为read()返回的数据是"字节"类型.但是,我不能为我的生活让它转换成json能够解析的东西.我从头文件中知道reddit试图将utf-8发送给我,但我似乎无法将字节解码为utf-8:

import urllib.request, json
response = urllib.request.urlopen("http://reddit.com/.json")
content = response.read()
data = json.loads(content.decode("utf8"))
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

编辑:问题是我无法将数据变为可用状态; 即使json加载数据,其中一部分是无法显示的,我希望能够将数据打印到屏幕上.

第二次编辑:问题与打印有关,而不是解析.通过将IO设置为utf8,Alex的答案为脚本在Python 3中的工作方式提供了一种方法.但问题仍然存在:为什么代码在Python 2中工作,而不是Python 3?

python compatibility json urllib python-3.x

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

获取Program Compatibility Assistant对话框的原因是什么?

应用程序关闭后获取Program Compatibility Assistant对话框的可能原因是什么?

程序兼容性助手图像http://i.msdn.microsoft.com/dynimg/IC5958.gif

编辑:程序兼容性助手:常见问题解答

我意识到这个问题已经被提出来了

但是,我的应用程序:

  1. 关闭后才能获得PCA
  2. 不试图做任何需要提升权限的事情(我不认为)
  3. 从IDE运行时不会获得PCA
  4. 不是安装程序/安装程序
  5. 程序名称中没有"installer"或"setup"
  6. 关闭时不抛出异常,或者使用0以外的代码退出(我不认为)
  7. 如果我将节点添加到应用程序清单,则不会获得PCA<compatibility>

注意#6,有以下app.manifest,我不再获得PCA:

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <!--The ID below indicates application support for Windows Vista -->
      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
      <!--The ID below indicates application support for Windows 7 -->
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
    </application>
  </compatibility>
</asmv1:assembly> …
Run Code Online (Sandbox Code Playgroud)

compatibility uac windows-7

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

Android Market - 此应用程序适用于超过0个设备?

我已经将apk发布到Android Market,为所有国家/地区免费激活和设置. 在此输入图像描述 Android Market说,我的应用程序与任何设备都不兼容.当我从PC浏览器访问Android Market时,我可以看到一个应用程序,但我无法从任何Android手机(用于在发布前测试应用程序的相同设备)下载它.

如果我的要求很少,那怎么可能呢?我已经在上传之前在一些相当旧的设备上测试了该应用程序并且它有效.

发布选项中的信息:

This application is only available to devices with these features, as defined in your application manifest.
Screen layouts: SMALL NORMAL LARGE XLARGE
Required device features
android.hardware.screen.portrait
android.hardware.touchscreen

*This application is available to over 0 devices.*
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

APK标签上的信息:

VersionCode: 2
VersionName: 1.0.1
Size: 4.3M
Localized to: default
Permissions: android.permission.READ_PHONE_STATE, android.permission.INTERNET, android.permission.WRITE_EXTERNAL_STORAGE, android.permission.ACCESS_NETWORK_STATE
Features: android.hardware.screen.portrait, android.hardware.touchscreen
API level: 7-15+
Supported screens: small-xlarge
OpenGL textures: all
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如果它不够奇怪,我在同一个帐户有另一个应用程序,具有非常相似的要求,它给了我:这个应用程序可用于超过746个设备. 在此输入图像描述 到底是怎么回事?

更新:

因为很多答案都表明:"只需激活你的APK ......"我再次强调: …

compatibility android device google-play

21
推荐指数
2
解决办法
9051
查看次数

英特尔和AMD处理器是否具有相同的汇编程序?

C语言用于编写UNIX以实现可移植性 - 使用不同编译器编译的相同C语言程序生成不同的机器指令.为什么Windows操作系统能够在Intel和AMD处理器上运行?

c x86 compatibility amd intel

20
推荐指数
5
解决办法
2万
查看次数

为什么AOSP添加新API以支持库而不将其添加到SDK?

我几个月来一直在为Android开发,这个问题一次又一次地出现:添加全新功能(API)以支持库而没有它们在标准SDK中可用的动机是什么?

例:

FragmentTabHost API仅可通过android.support.v4.app.FragmentTabHost.大部分时间都很好,但是如果你想将片段嵌套和PreferenceFragment一起使用,你就会死在水中 - 嵌套需要你切换到android.support.v4.app.Fragment(支持4.2以下),但是在这里没有PreferenceFragment的实现支持lib.因此,您要么实现自定义解决方法,要么使用已经实现它们的第三方库(请参阅此问题)

编辑:正如@eugen在他的回答中指出的那样,我自己从support-v13引用了FragmentTabHost,它支持原生片段.但是,此信息不会改变整体问题.事实上,如果我将此API与片段嵌套一起使用,我的应用程序今天将无法在~30%的设备上运行(本机片段支持从4.2开始嵌套).

例:

我今天遇到的另一个问题(浪费了太多时间)是通过ActionBarDrawerToggle提供的android.support.v7.app.ActionBarDrawerToggle.我想使用此功能,因此我将整个添加com.android.support:appcompat-v7:21.0.+到项目的依赖项中.我猜这会做,但我错了 - 我的应用程序没有编译(缺少支持库引用的资源).在从网上尝试了一些技巧之后,我发现这个问题最终提供了解决方案.简而言之:v7支持库依赖于SDK,因此我不得不定义compileSdkVersion 21.

后果:

现在,我告诉自己:FragmentTabHost尚未添加到任何SDK版本中,这意味着即使是4到5年后,开发人员仍将继续使用support-v4 lib来提供此功能(因为即使今天添加了此API) ,你可以安全地假设所有目标设备本地支持它,需要几年时间,对吧?相同的参数适用于android.support.v4.widget.DrawerLayout仅存在于支持库中的API和其他API.

如果开发人员多年来一直使用支持库,这也意味着他们在这些问题已经解决之后很久就会遇到上述不一致/依赖问题,对吧?

题:

谷歌为什么要永远保留这些图书馆?如果将所有新API与兼容库并行添加到SDK中,那么对于每个人来说都不会更好,这样兼容性库可能会老化并在某些时候"退出"吗?

编辑:关注@ eugen的回答我现在更加困惑 - 一些API"升级"了更新的支持库,但是没有进入主SDK(比如FragmentTabHost,它从support-v4演变为support-v7).不将它们添加到SDK的原因是什么?

compatibility android android-support-library

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

Angular 2:检查用户的浏览器是否兼容

我正在编写一个Angular 2应用程序,但我意识到有些用户可能没有使用可以支持Angular 2的浏览器.

我检查是否启用了Javascript,我更感兴趣的是用户的浏览器是否不支持Angular 2所需的某些JS/HTML5 /其他功能.

评估用户浏览器是否支持Angular 2的最佳方法是什么,如果不支持则显示消息?

我知道例如Modernizer,但不知道从哪里开始,因为Modernizer的重点似乎是逐步组装兼容性检查而不是提供检查整个框架兼容性的解决方案.

javascript compatibility modernizr typescript angular

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

如何创建.NET Core类库并从.NET 4.6项目引用它?

我想要:

  • 创建一个定义一些接口和简单通用助手类的类库.它将依赖于泛型集合,IQueryable<T>但没有第三方依赖(好吧JetBrains.Annotations).
  • 能够从任何地方引用该类库(特别是UWP,net46和ASP.Net Core RC2)
  • 理想情况下,始终使用project.json系统,尽管如果需要我准备牺牲它.
  • 将完成的库发布到NuGet源,然后在其他应用程序中使用它

在Visual Studio 2015.2中创建我的类库项目时,我找到了该Class Library (.NET Core)模板

用于将类库创建为可以针对任何平台的NuGet包的项目模板

任何平台!很棒...但我无法让它发挥作用.经过大量的摆弄,我目前有以下内容project.json(我现在可能完全打破了它):

{
"title": "My Really Useful Class Library",
"copyright": "Copyright © 2015-16 Tigra Astronomy, all rights reserved",
"description": "Really neat stuff",
"language": "en-GB",
"version": "1.0.0-*",
"dependencies": {
    "JetBrains.Annotations": "10.1.4",
    },
"frameworks": {
    "netstandard1.5": {
        "imports": "dnxcore50",
        "dependencies": {
            "NETStandard.Library": "1.5.0-rc2-24027",
            "System.Linq.Expressions": "4.0.11-rc2-24027"
            }
        }
    "net46": {
        "frameworkAssemblies": {
            "System.Collections": "4.0.*"
            },
        "dependencies": {}
        }
    },
    "buildOptions": {
        "xmlDoc": …
Run Code Online (Sandbox Code Playgroud)

compatibility .net-core project.json asp.net-core

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