有一段复杂的代码可以执行许多复杂的数学运算.
当它由maven在jdk 1.7上构建和测试时,它会通过所有测试.使用jdk 1.8时失败.
试图在调试器中找到计算出错的地方似乎几乎没有希望.
我有什么选择?有没有一种工具可以在我的代码中扫描jdk 1.7和1.8之间的不兼容性?
我是最好的选择,在两个单独的调试器中运行代码,看看差异在哪里?
编辑:
@PhilippClaßen到目前为止,这是最可能的原因.我希望有一种自动检查方法.
@dkatzel这段代码不是我写的,评论很差,并且做了对我来说是"木头"的科学计算.
@Mike Samuel我认为这种方法没有比并行运行两个调试器更好的了.
谢谢大家的帮助.似乎两个调试器是最好的方法.
编辑2 原始代码的作者依赖于哈希映射排序.那就是问题所在.
我刚刚发布了我的应用程序,用于佩戴设备,它的Watch Face,没有任何手机应用程序用户界面.我上传到了Google Play.但它说这个应用程序与您的设备不兼容.致所有用户或设备.
有人有想法吗?
我想禁用 Web 的 crashlytics,并在我的 flutter 应用程序上的 android 和 iOS 中保持启用状态,因为 web 不支持 firebase crashlytics。谁能告诉我该怎么做。没有Platform.isWeb,所以这就是我感到困惑的原因。请帮助我并让我知道。这是我的main.dart代码供参考。
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return FutureBuilder(
// Initialize FlutterFire
future: Firebase.initializeApp(),
builder: (context, snapshot) {
// Firebase Crashlytics
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
// Check for errors
if (snapshot.hasError) {
return SomethingWentWrong();
}
// Show Application
if (snapshot.connectionState == ConnectionState.done) {
return StreamProvider<User>.value(
initialData: null,
value: AuthService().user, …Run Code Online (Sandbox Code Playgroud) 有时,当改进远远超过缺点时,您需要引入向后不兼容的更改.可以轻松切换到旧行为,但用户必须知道此类更改.
因此问题是:如何宣布未来向FLOSS(开源)项目的后向不兼容更改,以便用户可以为它们做好准备,并更改其使用,或配置程序以使用旧行为.
因为它是OSS项目,所以它由各种发行版独立打包,并且可以在没有用户干预的情况下自动升级.然后,向后不兼容的更改可能会破坏某些工作流程(例如第三方脚本).
目前考虑(和使用)的途径:
编辑1:这个(向后不兼容)更改将在某个主要版本中发生.
所有更改都是关于添加安全措施(拒绝可能彻底混淆新手用户的命令),或将默认值更改为更合理的值.
编辑2:在过渡期间,默认配置(意味着更改为默认拒绝/拒绝)将更改为警告,并说明如何转动警告,这也可以防止默认行为中的向后不兼容更改.
但如果是自动化系统可能无济于事......
有问题的项目是Git,分布式版本控制系统;
见给予预警用户在gitster的日记(JUNIOÇ滨野博客)
git project-management backwards-compatibility incompatibility
我收到警告不兼容的指针类型在下面的代码中从'NSURLResponse*'分配'NSHTTPURLResponse*'.此方法是Sharekit的一部分.
带警告的行是粗体/斜体:
- (void)connection:(NSURLConnection *)aConnection didReceiveResponse:(NSURLResponse *)aResponse
{
if (response)
[response release];
***response = [aResponse retain];***
[responseData setLength:0];
}
Run Code Online (Sandbox Code Playgroud)
有人请帮忙!
谢谢!
我不是100%肯定我是否应该在这里发布,但我还能在哪里发布它(绝对不是服务器故障或超级用户)所以希望它不是太不合适.
我目前正在开发一个脚本,我希望将其作为wordpress和其他开源内容管理系统的插件发布.该脚本的目的是允许Web设计人员根据访问者使用的浏览器动态地附加样式表和javascripts.因此,如果他们的网站在Chrome中看起来有点奇怪,那么他们可以为这一个浏览器附加css或javascript hack.脚本还会有更多功能,但这是主要目的.
无论如何,我想知道哪些浏览器包含支持,因为我需要知道哪一个给设计人员/开发人员带来了最大麻烦.不仅是名称,还有版本(即Internet Explorer 4).提前谢谢了!
我从粗体线中的不兼容类型"FBXMLHandler*"警告中获取"id".此警告在ShareKit中,我正在寻找一种方法来解决它.
FBXMLHandler* handler = [[[FBXMLHandler alloc] init] autorelease];
NSXMLParser* parser = [[[NSXMLParser alloc] initWithData:data] autorelease];
***parser.delegate = handler;***
[parser parse];
Run Code Online (Sandbox Code Playgroud) 我最近合作的供应商为我的公司制作了一个页面.它通常运行良好,但在IE浏览器(任何版本)查看时都会被完成.
以下是错误详细信息:
用户代理:Mozilla/4.0(兼容; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.4; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)时间戳:星期二,2012年11月6日18:06:55 UTC
消息:预期的标识符,字符串或数字
行:82
字符:1
代码:0
以下是我认为它所指的代码部分:
<script type="text/javascript">
jwplayer("container1").setup({
'flashplayer': "player.swf",
'autostart':"true",
'skin': "skin.zip",
'controlbar': "bottom",
'screencolor': "FFFFFF",
'image': "images/gradient green background.jpg",
'file': "new_tour_video/General_Information_Final2.m4v",
'height': "546",
'width': "999",
<-----------------*This would be line 82, Character 1*
});
</script>
Run Code Online (Sandbox Code Playgroud)
任何人都能指出我在正确的方向吗?
我对此有所了解(但并不多),但似乎这可能表明脚本存在问题.唯一的问题是,玩家本身工作正常.这是页面的其余部分变得杂乱无章......但为什么它会告诉我错误是在第82行?我检查了相关的CSS文件,一切看起来都很正常(第82行是一个非常普通的,格式正确的标签).
简而言之,我很难过.我敢肯定有一个非常扎实的Java知识的人能够解决这个问题,但我对正确的Java语法的了解相当薄弱.
我有一个应用程序突然(今天)变得与它正在处理的设备不兼容.该应用程序是Dragon Lords,设备是Samsung Galaxy Tab 2.任何人都知道这里可能发生了什么?
最后一个apk是在2个月前上传的,一切都运行正常.今天我有一个玩家报告,在市场上该应用程序与他的设备不兼容.我检查了我的Galaxy Tab 2,这是同一个故事.我的设备没有扎根,所以我真的不知道发生了什么.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="auto"
package="mds.DragonLords"
android:versionCode="25"
android:versionName="1.2.19" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application
android:icon="@drawable/icon"
android:label="@string/app_name"
>
<activity
android:configChanges="keyboardHidden|orientation"
android:name="com.tapjoy.TJCOffersWebView" />
<activity
android:configChanges="keyboardHidden|orientation"
android:name="com.tapjoy.TapjoyFeaturedAppWebView" />
<activity
android:configChanges="keyboardHidden|orientation"
android:name="com.tapjoy.TapjoyVideoView" />
<activity
android:configChanges="keyboardHidden|orientation"
android:label="@string/app_name"
android:name="mds.DragonLords.nowe.Splash"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity …Run Code Online (Sandbox Code Playgroud) 现在使用新的PHP 7.0.0,我有点担心所谓的"变量变量"的评估顺序的变化.
在此页面的 "对变量处理的更改"下,将显示一个表,其中包含表达式示例及其处理顺序,在PHP 5和PHP 7中.列出的四个表达式为:
$$foo['bar']['baz']
$foo->$bar['baz']
$foo->$bar['baz']()
Foo::$bar['baz']()
Run Code Online (Sandbox Code Playgroud)
给定以下字符串和数组:
$qux = 'quux';
$foo = array('bar' => array('baz' => 'qux'));
Run Code Online (Sandbox Code Playgroud)
表中的第一个表达式在$$foo['bar']['baz']PHP 5 中被解释为一个名为value in的变量的值$foo['bar']['baz'],因此值为$qux,即 'quux'.
但是,在PHP 7中,正如我所理解的那样,同一个表达式将被解释为一个名为value in的变量$foo,因此我希望PHP注意'数组到字符串转换',因为它$foo是一个数组.
表中的其他示例似乎是同一主题的变体.
当然,我很好奇为什么在PHP 7中改变了这一点(具体来说,为什么这种改变比向后兼容更重要),然而,这对SO来说不是一个合适的问题.我的问题更实用:
应对这种不兼容性的推荐方法是什么?
当然,加入大括号违规表达式将有助于(${$foo['bar']['baz']},$foo->{$bar['baz']},$foo->{$bar['baz']}()和Foo::{$bar['baz']}()),但是这是非常麻烦的,经历吨的旧代码,寻找相对较少occurances ...
否则,这四个示例是唯一可能的语法变体吗?也就是说,我可以创建一个RegExp和grep所有违规代码吗?可能存在哪些其他变化?
incompatibility ×10
ios ×2
javascript ×2
warnings ×2
android ×1
browser ×1
crashlytics ×1
css ×1
dart ×1
flutter ×1
flutter-web ×1
galaxy ×1
git ×1
google-play ×1
java ×1
java-7 ×1
java-8 ×1
migration ×1
php ×1
php-7 ×1
sharekit ×1
string ×1
wear-os ×1