我花了很多时间尝试在我的Java应用程序中使用C#函数但没有成功......我在C#中编写了以下lib:
public class Converter
{
public Converter()
{
}
public bool ConvertHtmlToPdf(String directoryPath)
{
//DO SOMETHING
}
}
Run Code Online (Sandbox Code Playgroud)
这个dll调用另一个dll进行一些操作,但是当我编译它时,我可以在我的Realse文件夹中找到Dlls,一切似乎都没问题,所以我使用32位选项,64位和任何CPU选项编译它只是为了确保它不是我的问题.
使用Dependency Walker在32位和任何CPU选项中分析我的dll文件,它说IESHIMS.DLL无法找到,并显示以下消息:
警告:找不到至少一个延迟加载依赖项模块.警告:由于延迟加载相关模块中缺少导出功能,至少有一个模块具有未解析的导入.
64位文件没有出现,但我找不到我的ConvertHtmlToPdf函数.
由于我不知道它是否相关,我的第二步是在Java代码中.
要加载我的库我做:
System.setProperty("jna.library.path", "C:\\Program Files (x86)\\Facilit\\Target App\\lib");
Run Code Online (Sandbox Code Playgroud)
和:
public interface IConversorLibrary extends Library {
IConversorLibrary INSTANCE = (IConversorLibrary) Native.loadLibrary("converter", IConversorLibrary.class);
void ConvertHtmlToPdf(String directoryPath);
}
Run Code Online (Sandbox Code Playgroud)
(lib似乎加载成功,因为如果我尝试删除运行它的应用程序的dll文件,则表示无法删除因为它正在使用中)并最终:
IConversorLibrary.INSTANCE.ConvertHtmlToPdf(directoryPath);
Run Code Online (Sandbox Code Playgroud)
但结果并非如我所愿:
java.lang.UnsatisfiedLinkError: Error looking up function 'ConvertHtmlToPdf': Could not find the specified procedure.
Run Code Online (Sandbox Code Playgroud)
我不知道我做错了什么,我尝试了许多教程和很多东西,但是任何事情似乎都有效,任何帮助都非常感激.
我正在尝试使用带有点的 geoJson 在地图上添加一些标记,我正在遵循传单文档,但它仍然说:
\n\n\n\n\n错误:GeoJSON 对象无效。
\n
\n throw new Error(\'无效的 GeoJSON 对象。\');
我的 GeoJson:
\n\nvar meta1nJson={\n "type": "FeatureCollection",\n "features": [\n {\n "type": "Feature",\n "geometry": {\n "type": "Point",\n "coordinates": [\n -38.3613558,\n -8.8044875\n ]\n },\n "properties": {\n "Ordem": "193",\n "Eixo": "Leste",\n "Meta": "1L",\n "Municipio": "Petrol\xc3\xa2ndia",\n "Estado": "PE",\n "Nome da Comunidade": "Agrovila 4"\n }\n },\n {\n "type": "Feature",\n "geometry": {\n "type": "Point",\n "coordinates": [\n -38.3445892,\n -8.7940031\n ]\n },\n "properties": {\n "Ordem": "194",\n "Eixo": "Leste",\n "Meta": "1L",\n "Municipio": …Run Code Online (Sandbox Code Playgroud) 我有两个场景Login.fxml和MainView.fxml以及两个不同的控制器LoginController.java和MainViewControler.java
在LoginController中,我执行整个登录过程并获取JSessionID的值并将其存储在对象中,如下所示:
loginGateway = loginGateway(gateway);
Run Code Online (Sandbox Code Playgroud)
现在在MainViewController中我需要使用this对象(loginGateway)来获取getJSessionID并向服务器发出其他请求.但是如何在另一个Controller类(MainViewController.java)中访问此对象?
我需要在我的应用程序上下载一个大文件(差不多2gb),我想知道最好的方法是什么,以及一些libs来帮助我.首先,我查看了Android异步Http库,但我没有找到显示如何发布进度或启动,暂停下载的示例.然后我不知道我是否应该使用这个lib或只是使用一个标准的http commons.其他问题是,我应该使用服务来下载我的文件吗?
你们可以给一个提示,怎么做?
我正在尝试使用DownloadManager从我的服务器解析带有JSESSIONID的cookie来获取一个zip文件.我正在使用HTTPCLIENT lib获取此JSESSIONID所有进程登录并设置变量JSESSIONID以供稍后在我的DownloadManager请求中使用.
我的下载请求:
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(htmlUrlDownload));
request.addRequestHeader("Cookie", "JSESSIONID=" + JSESSIONID);
request.addRequestHeader(Constants.USER_AGENT, Constants.TARGET_REQUEST_HEADER);
request.setDescription("Baixando " + metaDado.getType());
request.setTitle("Download");
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
String nameFile = offlineUuid + ".zip";
fileName = nameFile;
filePath = Environment.getExternalStorageDirectory() + File.separator + Environment.DIRECTORY_DOWNLOADS
+ File.separator + fileName;
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, nameFile);
final DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
final long downloadId = manager.enqueue(request);
Run Code Online (Sandbox Code Playgroud)
问题是下载永远不会启动,COLUMN_REASON会将代码返回给ERROR_UNHANDLED_HTTP_CODE
但是,如果我尝试使用Dropbox链接下载相同的文件而无需身份验证或使用httpclient,它的工作完美,我做错了什么?
如何获得更好的消息错误?
我正在尝试进行一些下载并显示表格中的进度:

要做到这一点,我正在使用以下类:
public class DownloadDataTable {
private SimpleDoubleProperty progress;
private SimpleStringProperty type;
private SimpleStringProperty status;
public DownloadDataTable(double progress, String type, String status) {
this.progress = new SimpleDoubleProperty(progress);
this.type = new SimpleStringProperty(type);
this.status = new SimpleStringProperty(status);
}
public double getProgress() {
return progress.get();
}
public void setProgress(double progress) {
this.progress.set(progress);
}
public String getType() {
String retorno;
if (type==null){
retorno="";
}else{
retorno=type.get();
}
return retorno;
}
public void setType (String type) {
this.type.set(type);
}
public String getStatus(){
String retorno;
if (status==null){ …Run Code Online (Sandbox Code Playgroud) 我有一个具有最简单清单的库
<manifest package="com.xxx.xxx.android" />
但是这个库需要从 Android Manifest 获取两个元数据值才能正常工作,因此为了运行我的测试,我添加了src/test/AndroidManifest.xml以下代码:
<manifest package="com.xxx.xxx.android"
xmlns:android="http://schemas.android.com/apk/res/android">
<application>
<meta-data
android:name="var1"
android:value="value1"/>
<meta-data
android:name="var2"
android:value="value2"/>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
正如我从文档中读到的那样,我必须AndroidManifest.xml在gradle. 我正在尝试这样做:
android {
...
buildTypes {
debug {
testCoverageEnabled true
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
String sharedTestDir = 'src/sharedTest/java'
String testManifest = 'src/test/AndroidManifest.xml'
test {
java.srcDir sharedTestDir
manifest.srcFile testManifest
}
androidTest {
java.srcDir sharedTestDir
manifest.srcFile testManifest
}
}
testOptions.unitTests.includeAndroidResources true
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用,我无法在测试中获取元数据。仅当我设置manifest.srcFilefor main …
我有一个Intent服务处理一些文件的下载和解压缩.现在我正在尝试使用同一个Intent Service下载同步文件,但是当我尝试启动第二次下载时,它只是将新下载排入队列,我怎么能不排队我的下载?
Intent service = new Intent(getActivity(), DownloadAndUnzipService.class);
service.putExtra("post", false);
service.putExtra("url", htmlUrlDownload);
service.putExtra("filePath", filePath);
service.putExtra("destinationPath", destinationPath);
service.putExtra("receiver", mReceiver);
service.putExtra("typeDownload", Constants.HTML);
service.putExtra("metaDado", downloadContent.getMetaDado());
service.putExtra("isResuming", false);
getActivity().startService(service);
Run Code Online (Sandbox Code Playgroud)
我没有放下DownloadAndUnzipService代码,因为它太长了,我认为它没有帮助,但如果有用,我可以更新它.
我有一个aplicattion需要创建一个文件夹来解压缩一些文件,但我想传递一个文件路径,我的应用程序可以运行,创建和保存我的文件在任何操作系统,但我不知道应该是什么输出路径要做到这一点.
例如:
File folder = new File(outputFolder);
if (!folder.exists()) {
folder.mkdir();
}
Run Code Online (Sandbox Code Playgroud)
我应该在outputFolder中使用什么路径在任何操作系统(Windows,Mac或Linux)的Documents/UnzipTest中创建我的文件夹?
我正在使用TableLayout并使用自定义行动态填充它,但现在如果我使用android:stretchColumns android:shrinkColumns它不起作用.
我的活动布局:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:text="@string/offline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"
android:textStyle="bold"
android:textSize="20sp"
android:textColor="@color/dimGray"
/>
<TableLayout
android:id="@+id/download_full_table"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="20dp"
android:stretchColumns="2"
android:shrinkColumns="1"
>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我的行布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
<TableRow
android:background="@color/white"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="*">
<TextView
android:id="@+id/row_name"
android:text="@string/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="12sp"
android:layout_marginLeft="15dp"
android:layout_marginTop="7dp"
android:layout_marginRight="10dp"
/>
<TextView
android:id="@+id/row_size"
android:text="@string/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/lightGray"
android:layout_marginTop="7dp"
/>
<Button
android:id="@+id/row_btnDownload"
android:text="@string/baixar"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:background="@drawable/btn_baixar_verde"
android:textColor="@color/white"
android:textSize="13sp"
android:layout_marginTop="7dp"
android:layout_marginBottom="7dp"
android:layout_marginLeft="7dp"
android:layout_marginRight="15dp"
android:textStyle="bold"
/>
</TableRow>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我的代码: …
我试图通过这种方式将ArrayList传递给我的新活动:
Intent it = new Intent(activity, DownloadSelectionActivity.class);
it.putExtra("anos", yearList);
activity.startActivity(new Intent(activity, DownloadSelectionActivity.class));
Run Code Online (Sandbox Code Playgroud)
我的yearList没关系,我可以看到Log中的所有值,但是当我尝试使用下面的代码获取它时,它返回一个NullPointerExcepetion:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_downloadselection);
ArrayList<Integer> anosLista = (ArrayList<Integer>) getIntent().getSerializableExtra("anos");
for (Integer anos : anosLista) {
Log.d(Constants.DOWNLOAD_SELECTED_ACTIVITY, String.valueOf(anos));
}
Run Code Online (Sandbox Code Playgroud)
例外:
03-25 20:11:18.144: E/AndroidRuntime(7899): FATAL EXCEPTION: main
03-25 20:11:18.144: E/AndroidRuntime(7899): java.lang.RuntimeException: Unable to start activity ComponentInfo{br.com.facilit.target.app.android/br.com.facilit.target.app.android.DownloadSelectionActivity}: java.lang.NullPointerException
03-25 20:11:18.144: E/AndroidRuntime(7899): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
03-25 20:11:18.144: E/AndroidRuntime(7899): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
03-25 20:11:18.144: E/AndroidRuntime(7899): at android.app.ActivityThread.access$600(ActivityThread.java:141)
03-25 20:11:18.144: E/AndroidRuntime(7899): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
03-25 20:11:18.144: E/AndroidRuntime(7899): at android.os.Handler.dispatchMessage(Handler.java:99)
03-25 20:11:18.144: E/AndroidRuntime(7899): …Run Code Online (Sandbox Code Playgroud) android ×6
java ×3
javafx ×2
javafx-2 ×2
c# ×1
controller ×1
dll ×1
gradle ×1
ios ×1
javascript ×1
jna ×1
leaflet ×1
objective-c ×1
tableview ×1