kanzi的android程序中用到了如下的代码
import java.util.*;//工具类一般都在util里面
import java.util.concurrent.ThreadLocalRandom;
import com.rightware.kanzi.*;
public class BSplineArea extends KanziActivity
{
private static final String TAG = "BSplineArea";
public void test(){
ThreadLocalRandom tlr = ThreadLocalRandom.current();
System.out.println(tlr.nextInt(10,50));
}
}
这个ThreadLocalRandom 是在jre的lib/rt.jar中
默认情况下rt.jar ant是不去查找的。所以编译提示下面的错误
参考网上的解决办法
http://blog.csdn.net/lday/article/details/18705837 网页上的内容也保存在附件中了
解决办法如下
找到kanzi的配置文件下的android sdk 目录设置
环境变量配置文件在C:\ProgramData\Rightware\Kanzi 3.2.3 \kanzi_environment_variables.bat
我们的配置sdk目录为
F:\KanziWorkspace_2_8_4_258\3rdPartySDKs\android-sdk-windows\tools\ant\build.xml
找到里面的build.xml 这个是ant编译android apk的编译脚本。
用文本编辑器打开build.xml
搜索javac 找到下面的配置
<target name="-compile" depends="-pre-build, -build-setup, -code-gen, -pre-compile">
<do-only-if-manifest-hasCode elseText="hasCode = false. Skipping...">
<!-- merge the project's own classpath and the tested project's classpath -->
<path id="project.javac.classpath">
<path refid="project.all.jars.path" />
<path refid="tested.project.classpath" />
<path path="${java.compiler.classpath}" />
<fileset dir="${env.JAVA_HOME}/jre/lib">
<include name="*.jar" />
</fileset>
</path>
<javac encoding="${java.encoding}"
source="${java.source}" target="${java.target}"
debug="true" extdirs="" includeantruntime="false"
destdir="${out.classes.absolute.dir}"
bootclasspathref="project.target.class.path"
verbose="${verbose}"
classpathref="project.javac.classpath"
fork="${need.javac.fork}">
<src path="${source.absolute.dir}" />
<src path="${gen.absolute.dir}" />
<compilerarg line="${java.compilerargs}" />
</javac>
添加上面黄色的脚本,重新使用scons编译即可