我想有一种方法在代码的主要部分引用项目的清单版本号.到目前为止我一直在做的是将String XML文件中的版本号链接到清单(@ string/Version).我想做的是反过来做,将字符串XML变量链接到清单中的版本.原因?我只想在一个位置更改清单文件中的版本号.有没有办法做到这一点?谢谢!
我想在postgresql中设置一个表,这样两列一起必须是唯一的.任何一个值都可以有多个值,只要没有两个值共享两者.
例如:
CREATE TABLE someTable (
id int PRIMARY KEY AUTOINCREMENT,
col1 int NOT NULL,
col2 int NOT NULL
)
Run Code Online (Sandbox Code Playgroud)
所以,col1和col2可以重复,但不能在同一时间.所以,这是允许的(不包括id)
1 1
1 2
2 1
2 2
Run Code Online (Sandbox Code Playgroud)
但不是这个:
1 1
1 2
1 1 -- would reject this insert for violating constraints
Run Code Online (Sandbox Code Playgroud) 我DatePicker在android中遇到问题,当我使用getMonth()方法然后它将返回错误的值.
例如:
DatePicker datepicker=new DatePicker();
int day=date.getDayOfMonth();
int month=date.getMonth();
int year=date.getYear();
t.setText(""+day+" / "+month+" / "+year);
Run Code Online (Sandbox Code Playgroud)
如果我选择1987年8月6日那么它将于1987年6月7日返回
我认为这是一个错误,如果不是告诉我原因请.
我有以下代码,使用pscyopg2:
sql = 'select %s from %s where utctime > %s and utctime < %s order by utctime asc;'
data = (dataItems, voyage, dateRangeLower, dateRangeUpper)
rows = cur.mogrify(sql, data)
Run Code Online (Sandbox Code Playgroud)
这输出:
select 'waterTemp, airTemp, utctime' from 'ss2012_t02' where utctime > '2012-05-03T17:01:35+00:00'::timestamptz and utctime < '2012-05-01T17:01:35+00:00'::timestamptz order by utctime asc;
Run Code Online (Sandbox Code Playgroud)
当我执行它时,它会失败 - 这是可以理解的,因为表名周围的引号是非法的.
有没有办法合法地将表名作为参数传递,或者我是否需要执行(显式警告)字符串连接,即:
voyage = 'ss2012_t02'
sql = 'select %s from ' + voyage + ' where utctime > %s and utctime < %s order by utctime asc;'
Run Code Online (Sandbox Code Playgroud)
为任何见解干杯.
我有以下代码:
Double i=17.31;
long j=(long) (i*100);
System.out.println(j);
Run Code Online (Sandbox Code Playgroud)
O/P: 1730 //Expected:1731
Double i=17.33;
long j=(long) (i*100);
System.out.println(j);
Run Code Online (Sandbox Code Playgroud)
O/P: 1732 //Expected:1733
Double i=17.32;
long j=(long) (i*100);
System.out.println(j);
Run Code Online (Sandbox Code Playgroud)
O/P: 1732 //Expected:1732{As expected}
Double i=15.33;
long j=(long) (i*100);
System.out.println(j);
Run Code Online (Sandbox Code Playgroud)
O/P: 1533 //Expected:1533{as Expected}
我曾试图谷歌,但无法找到理由.如果问题很简单,我很抱歉.
我在/res/values/colors.xml下的Android应用程序中创建了一个colors.xml文件.内容是......
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="Green">#00ff00</color>
</resources>
Run Code Online (Sandbox Code Playgroud)
我尝试使用...更新我的TableRow的背景
TableRow test = (TableRow)findViewById(R.id.tableRow2);
test.setBackgroundColor(R.color.Green);
Run Code Online (Sandbox Code Playgroud)
这不会将其设置为绿色,而是灰色.无论我添加到colors.xml文件的值是什么,它总是相同的灰色.不过这确实有用......
TableRow test = (TableRow)findViewById(R.id.tableRow2);
test.setBackgroundColor(android.graphics.Color.GREEN);
Run Code Online (Sandbox Code Playgroud)
我的colors.xml有问题吗?
正如标题所示,我想知道这段代码是否容易受到SQL注入攻击?如果是这样,是否有更好,更安全的方式来实现同样的目标?
def add(table,*args):
statement="INSERT INTO %s VALUES %s" % (table,args)
cursor.execute(statement)
Run Code Online (Sandbox Code Playgroud) 我正在按照示例方法添加此处的兼容首选项/片段对话框.这样做时,我发现如果我有Integers,Boolean等首选项,它就会崩溃.
private static void bindPreferenceSummaryToValue(Preference preference) {
// Set the listener to watch for value changes.
preference
.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener);
// Trigger the listener immediately with the preference's
// current value.
sBindPreferenceSummaryToValueListener.onPreferenceChange(
preference,
PreferenceManager.getDefaultSharedPreferences(
preference.getContext()).getString(preference.getKey(),""));
}
Run Code Online (Sandbox Code Playgroud)
我发现我可以通过更改getString()to来getInteger()使用Integer ,并根据类型使用不同的bindPreferenceSummaryToValue函数.当然,这似乎是一个非常不优雅的解决方案,但我正在努力弄清楚我还能做些什么.这是堆栈跟踪,BTW.
11-22 19:52:10.068: E/AndroidRuntime(17564): FATAL EXCEPTION: main
11-22 19:52:10.068: E/AndroidRuntime(17564): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kd7uiy.hamfinder/com.kd7uiy.hamfinder.MainSettingsActivity}: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
11-22 19:52:10.068: E/AndroidRuntime(17564): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
11-22 19:52:10.068: E/AndroidRuntime(17564): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
11-22 19:52:10.068: E/AndroidRuntime(17564): at android.app.ActivityThread.access$600(ActivityThread.java:141)
11-22 …Run Code Online (Sandbox Code Playgroud) 我使用Proguard来模糊我的代码,并使其变小.我使用Eclipse构建,并且已经有一段时间了.我最近有一个在调试版本中运行良好的版本,我正试图发布.我一直试图在最后一天的大部分时间内完成这项工作,当我尝试使用已发布的版本运行我的代码时,我不断收到以下错误(如果有帮助,我可以生成更多代码).
02-25 16:39:58.844:E/AndroidRuntime(27593):引起:java.lang.ClassNotFoundException:路径上没有找到类"com.kd7uiy.hamfinder.MainActivity":DexPathList [[zip file"/ data /app/com.kd7uiy.hamfinder-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.kd7uiy.hamfinder-2,/ vendor/lib,/ system/lib]]
真奇怪的是,我没有改变我的proguard文件,至少不是我第一次这样做.我一直在玩它,看看我是否可以得到任何东西让它起作用,但似乎没有什么可以做到的.自从这个版本开始,我在我的代码库中添加了一个新库,即谷歌地图实用程序库.我的最后一次构建仅在几天前.
尝试解决此问题,我发现有一个整个文件夹没有出现在路径列表中.我在编译的二进制类中看到了这个文件夹,但它们不能在这个过程中存活下来.如果我停止使用Proguard,则发布版本按预期工作.
我的代码依赖于我/src目录中的6个包.虽然我可能在各个文件夹中添加了一个或两个文件,但我可能已经移动了一两个文件夹,但我没有显着更改此版本的此结构.6个套餐是:
com.kd7uiy.hamfinder
com.kd7uiy.hamfinder.dialogs
com.kd7uiy.hamfinder.ObserverOutPairs
com.kd7uiy.hamfinder.Subjects
com.kd7uiy.library
com.robobunny
Run Code Online (Sandbox Code Playgroud)
其中,我在proguard映射文件中找不到以下包的直接证据,至少对于这个特定的试验
com.kd7uiy.hamfinder
com.kd7uiy.hamfinder.ObserverOutPairs
com.kd7uiy.hamfinder.Subjects
Run Code Online (Sandbox Code Playgroud)
有些引用了一些变量名,但没有包含整个包的证据.我检查了.dex文件,它也没有包含丢失的软件包.我应该添加,有时看似随机的其他一些包将会出现,但永远不会出现com.kd7uiy.hamfinder在我的MainActivity所在的位置.有时它们都不会出现.
这是我的project.properties文件:
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target.
target=android-19
android.library.reference.1=..\\..\\..\\Documents\\GitHub\\android-maps-utils\\library
android.library.reference.2=..\\..\\..\\..\\..\\Program Files (x86)\\Android\\android-sdk\\extras\\android\\support\\v7\\appcompat
android.library.reference.3=..\\..\\..\\..\\..\\Program Files (x86)\\Android\\android-sdk\\extras\\google\\google_play_services\\libproject\\google-play-services_lib
android.library.reference.4=..\\..\\..\\Documents\\GitHub\\android-styled-dialogs\\library\\src\\main
android.library.reference.5=..\\..\\..\\Documents\\GitHub\\drag-sort-listview\\library
Run Code Online (Sandbox Code Playgroud)
我原来的proguard-project.txt文件,已被证明不起作用.
-keep class com.kd7uiy.hamfinder.MainSettingsActivity$GeneralPreferenceFragment
-keep class com.kd7uiy.hamfinder.MainSettingsActivity$LocationPreferenceFragment
-keep class com.android.vending.billing.**
-keep class jsqlite.** { *;}
-ignorewarnings
Run Code Online (Sandbox Code Playgroud)
我确实更改了它,以便为Proguard添加适当的Google Maps所需的更改.都没有奏效.
-keep class …Run Code Online (Sandbox Code Playgroud) 我正在进行分析,我希望将数据打印从水平更改为垂直.例如,当我执行以下操作时,这是我目前看到的输出类型:
> with(mtcars,sapply(split(mpg,cyl),mean))
4 6 8
26.66364 19.74286 15.10000
Run Code Online (Sandbox Code Playgroud)
我希望输出组织如下:
4 26.66364
6 19.74286
8 15.10000
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?