নতুন লিবিজিডিএক্স প্রকল্প চালানোর সময় "ফাইল পাওয়া যায় নি"


115

আমি লিবিজিডিএক্স শিখার চেষ্টা করছি, আমি এখানে একটি নতুন একি্লিপস ৪.৩ সহ একটি তালিকাভুক্ত সমস্ত সফটওয়্যার একটি তাজা ফর্ম্যাটেড ম্যাক ওএস এক্স ম্যাভারিকে ইনস্টল করেছি।

পুনরায় বুট করার পরে সবকিছু মসৃণ হয়, আমি জিডিএক্স-সেটআপ.জারটি ডাউনলোড এবং সম্পাদন করি, ফর্মটি পূরণ করুন এবং Eclipse এ আমদানি করুন।

আমি যখন ডেস্কটপ চালানোর চেষ্টা করি তখন কোনও ত্রুটি নেই, কোনও সতর্কতা নেই। (ডেস্কটপ প্রকল্পে ডান ক্লিক করুন, হিসাবে চালান -> জাভা অ্যাপ্লিকেশন)।

আমি এই ত্রুটি পেয়েছি

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: badlogic.jpg
at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:140)
at com.badlogic.gdx.graphics.glutils.FileTextureData.prepare(FileTextureData.java:64)
at com.badlogic.gdx.graphics.Texture.load(Texture.java:130)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:121)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:100)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:92)
at com.diesel.bugs.DieselBugs.create(DieselBugs.java:21)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:136)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)


Caused by: com.badlogic.gdx.utils.GdxRuntimeException: File not found: badlogic.jpg (Local)
at com.badlogic.gdx.files.FileHandle.read(FileHandle.java:134)
at com.badlogic.gdx.files.FileHandle.readBytes(FileHandle.java:218)
at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:137)

আমি এখানে অনুরূপ ইস্যু অনেক পাওয়া যায় নি, আমি কোনো ভাল ফলাফল করেও ... শেষ রাতে আমি পাওয়া তাদের সবাইকে চেষ্টা এই , খুব ঠান্ডা আমি সর্বশেষ জাভা 1.8, একটি ম্যাক আছে, এবং অন্ধকার পুরোপুরি মাপসই ...

তবে কোনও সাফল্য নেই, আমি জাভা 1.6 এবং 1.7 দিয়ে চেষ্টা করি, সর্বদা একই ত্রুটি (কোনও ফাইল পাওয়া যায়নি, আমি জাভা 1.7 রেখেছি)

আমি কিছু ডিবাগ করতে শুরু করি, এখানে আমদানি দ্বারা উত্পন্ন মূল কোডটির আমার একমাত্র পরিবর্তন।

package com.diesel.bugs;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;

public class DieselBugs extends ApplicationAdapter {
    SpriteBatch batch;
    Texture imgExternal,imgLocal;

    @Override
    public void create () {
        batch = new SpriteBatch();
        String pathLocal = Gdx.files.getLocalStoragePath();
        String pathExternal = Gdx.files.getExternalStoragePath();
        Boolean isExternal = Gdx.files.isExternalStorageAvailable();
        Boolean isLocal = Gdx.files.isLocalStorageAvailable();
        imgExternal = new Texture(Gdx.files.external("/Desktop/badlogic.jpg"));
        imgLocal = new Texture(Gdx.files.local("badlogic.jpg")); 
    }

    @Override
    public void render () {
        Gdx.gl.glClearColor(1, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        batch.begin();
        batch.draw(imgExternal, 0, 0);
        batch.end();
    }
}

অদ্ভুত জিনিসটি পথ লোকাল সমান ""। Gdx.files.getLocalStoragePath () এর কিছুই (খালি স্ট্রিং) ফিরিয়ে দেওয়া কি স্বাভাবিক নয়?

এছাড়াও

imgExternal = new Texture(Gdx.files.external("/Desktop/badlogic.jpg"));

দুর্দান্ত কাজ করে। শুধুমাত্র স্থানীয় একটি ত্রুটি দেয়, এটিও স্থানীয় এবং এটি বহিরাগত প্রত্যাবর্তন সত্য।

এবং আমি সমন্বয়, মত একটি প্রচুর চেষ্টা /assets/data/badlogic.jpg, /assets/badlogic.jpg, /data/badlogic.jpg, data/badlogic.jpg, এবং badlogic.jpg

চিত্রটি Badlogic.jpg আছে এবং আমি এটি একাধিক স্থানে রেখেছি তা নিশ্চিত।

এবং এখন সাহায্যের জন্য আমি এখানে আসার কারণটি হ'ল আমি কেবল একটি পিসিতে একই পদক্ষেপটি চেষ্টা করি এবং সবকিছু দুর্দান্ত কাজ করে।

আমার নতুন ম্যাকটি কী সেট করছে এবং সেটি সেট হচ্ছে?


এটি অদ্ভুত ... সম্পদগুলি যুক্ত করার পরে আপনি কি গ্রহপদে অ্যান্ড্রয়েড-প্রকল্পটি রিফ্রেশ করেছেন? কারণ আমার অনেক কিছু ঘটে যখন আমি অ্যান্ড্রয়েড-প্রকল্পের অ্যাসেট-ফোল্ডারে কোনও নতুন সম্পদ যুক্ত করি এবং তারপরেই অ্যাক্রয়েডে অ্যান্ড্রয়েড প্রকল্পটি রিফ্রেশ করতে ভুলে যাই তবে চিত্রটি নেই বলে আমার ত্রুটি ঘটবে ...
ফ্লোরিয়ানবাথজে

উত্তর:


230

Libgdx উইকি থেকে

আপনি যখন ডেস্কটপ প্রকল্প চালান run

অ্যাপ্লিকেশনটি প্রথমবার ব্যর্থ হবে। আপনি স্রেফ তৈরি রান কনফিগারেশনটি খুলুন এবং ওয়ার্কিং ডিরেক্টরিটি অ্যান্ড্রয়েড / সম্পদ / ডিরেক্টরিতে সেট করুন!

আপনার ডেস্কটপ প্রকল্প অ্যান্ড্রয়েড সম্পদ ফোল্ডারে লিঙ্ক করবেন?

রান => রান কনফিগারেশনগুলিতে যান .. => ডেস্কটপ লঞ্চারটি বেছে নিন , আর্গুমেন্টগুলি ট্যাব => ওয়ার্কিং ডিরেক্টরি => অন্যরা আপনার প্রোজেক্ট-অ্যান্ড্রয়েড / সম্পদগুলিতে ব্রাউজ করুন এবং প্রয়োগ করুন>> রান ক্লিক করুন

এখানে চিত্র বর্ণনা লিখুন


একই ইস্যুতে অন্যদের সহায়তা করতে, অ্যান্ড্রয়েড বিল্ডের সাথে একই ডিরেক্টরিটি কাজ করতে, আমাদের ডানদিকে অ্যান্ড্রয়েড / সম্পদ ডিরেক্টরিতে ক্লিক করতে হবে এবং বিল্ট পাথটিতে ক্লিক করতে হবে এবং এটি যুক্ত করার জন্য চয়ন করতে হবে।
লেবিল

10
এটা আমার জন্যও করেছিল। লিবিজিএডএক্সের শুরু থেকেই এই সমস্যাটি কী লজ্জাজনক তা - এটি একটি দুর্দান্ত ব্যবস্থা, তবে এর মতো জিনিসগুলি খুব ধৈর্য সহ দেবগণকে ভয় দেখাতে চলেছে।
রিচার্ড

অসাধারণ! এটি করার জন্য ব্যাখ্যা করে নমুনা প্রকল্পে কোনও লিখিত ক্ষেত্রের সাহায্যে চিত্রটি প্রতিস্থাপন করা কি লিবিজিডিএক্সের পক্ষে আরও বোঝা যাবে না? আমার অনুমান যে একটি সহজ গুগল অনুসন্ধান এখানে সকলকেই যাইহোক নেতৃত্ব দেয় তবে কম কিছু নয়, এটি মুখোমুখি হওয়া একটি অদ্ভুত বিষয়
কাই কিং

1
যদি আপনার অ্যান্ড্রয়েড / সম্পদ ফোল্ডার না থাকে তবে ডেস্কটপ / সম্পদ ফোল্ডারটি একইভাবে আমার জন্য কাজ করে।
ফ্রেডরিক অ্যান্ডারসন

1
দয়া করে মনে রাখবেন যে এটি কোনও সমাধান নয় বরং একটি কর্মচঞ্চল। এটি বেশিরভাগ পরিস্থিতিতে কাজ করবে, তবে তাদের সকলের মধ্যে নয়। উদাহরণস্বরূপ, আপনি যদি ডেস্কটপ মডিউল থেকে একটি টেক্সচার অ্যাটলাস তৈরির পরিকল্পনা করেন তবে আপনাকে অবশ্যই সেই পাথগুলি পুনরায় সংশোধন করতে হবে, এটি ডিফল্টরূপে ডেস্কটপ মডিউলের সাথে সম্পর্কিত।
ফ্রান মারজোয়া

75

আমরা যারা অ্যান্ড্রয়েড স্টুডিও বা ইন্টেলিজ আইডিইএ ব্যবহার করি তাদের জন্য আপনাকে এই পদক্ষেপগুলি অনুসরণ করতে হবে:

  1. রান -> মেনু থেকে কনফিগারেশন সম্পাদনা নির্বাচন করুন

  2. "ওয়ার্কিং ডিরেক্টরি:" পাঠ্য বাক্সে, "/ Android / সম্পদ" যোগ করুন।

দ্রষ্টব্য যে আপনি গ্রেড সহ কার্যগুলি সম্পাদন করেন তবে এটি কোনও সমস্যা নয়। গ্রেড.বিল্ড ফাইলগুলি অ্যান্ড্রয়েড মডিউল থেকে সম্পদ ফোল্ডারটি ব্যবহার করতে কনফিগার করা হয়েছে।


13

মনে রাখবেন যে পূর্ববর্তী উত্তরগুলি ব্যবহারকারীরা সেটআপে "অ্যান্ড্রয়েড" বাক্সটি চেক না করে তাদের জন্য কাজ করবে না। যারা অ্যান্ড্রয়েড মোতায়েন করার বিষয়ে চিন্তা করেন না তাদের জন্য সত্যই একটি ডিফল্ট সম্পদ ফোল্ডার ইনস্টল করা উচিত।


5
সঠিক এবং সঠিক, কেবল এটির মধ্যে দৌড়ে; মূলত সম্পদ ফোল্ডারে ডেস্কটপ ওয়ার্কিং ডিরেক্টরি সেট করা আমার পক্ষে কাজ করেছিল।
নাফ্টালিমিচ

@ নফলালিমিচ হ্যাঁ, আমি মনে করি সম্পদগুলি সত্যই মূল হওয়া উচিত। আমি বুঝতে পেরেছি তারা কেন এটি করেছে, কারণ অ্যান্ড্রয়েড গ্রেডেল প্লাগইন তাদের সেখানে চায় এবং তারা প্রতিটি বিল্ড / সিঙ্কের সমস্যাগুলি নিয়ে ডিল / কপি করে সমস্ত কিছু মোকাবেলা করতে চায় না। তবে এটিকে সত্যই সম্বোধন করা উচিত।
EntangledLoops

11

যারা ইন্টেলিজ আইডিইএ ব্যবহার করছেন তাদের জন্য:

  1. চালান -> কনফিগারেশন সম্পাদনা করুন
  2. বাম দিকে চয়ন করুন: অ্যাপ্লিকেশন -> ডেস্কটপ লঞ্চ
  3. "কনফিগারেশন" -ত্যাবটিতে "ওয়ার্কিং ডিরেক্টরি" চালিয়ে যান আপনার অ্যান্ড্রয়েড / সম্পদ পথ বেছে নিন

3
আপনি উল্লেখ করতে পারেন: 1) এর জন্য আপনাকে প্রথমে একটি ডেস্কটপ কনফিগারেশন তৈরি করতে হবে। 2) এটি আপনার মূল প্রকল্পটি তৈরি করার সময় আপনাকে অ্যান্ড্রয়েড নির্বাচন করেছে ass 3) এই উত্তরটি ইতিমধ্যে উপরের কোড-অ্যাপ্রেন্টিস দ্বারা সরবরাহ করা হয়েছিল অ্যান্ড্রয়েড স্টুডিওর নির্দেশাবলী হিসাবে, যা ইন্টেলিজ আইডিইতে নির্মিত।
লুপস

6

ওয়ার্কিং ডিরেক্টরিটি নিয়ে খেলা না করে আপনি এটি সঠিকভাবে ঠিক করুন:

সমস্যাটি হ'ল সম্পদ ফোল্ডারটি resourcesগ্রেড বিল্ডের জন্য ডিরেক্টরি হিসাবে সঠিকভাবে চিহ্নিত করা হয়নি । এটি ঠিক করতে আপনাকে ./core/build.gradleবিল্ড ফাইলে নিম্নলিখিত লাইনটি যুক্ত করতে হবে:

sourceSets.main.resources.srcDirs = [ "assets/" ]

সাম্প্রতিক libGDX সংস্করণটি দিয়ে একটি ক্লিন সেটআপের পরে আমার ফাইলটি দেখতে এমন দেখাচ্ছে:

apply plugin: "java"

sourceCompatibility = 1.6
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

sourceSets.main.java.srcDirs = [ "src/" ]
sourceSets.main.resources.srcDirs = [ "assets/" ]

eclipse.project {
    name = appName + "-core"
}

1

আমি একটি ভিন্ন সমাধান ব্যবহার।

অ্যাপ্লিকেশন রান কনফিগারেশন তৈরির পরিবর্তে একটি গ্রেড বিল্ড কনফিগারেশন তৈরি করুন। কাজটি হচ্ছে desktop:run। এটি কার্যকর হওয়ার পরে, গেমটি চালু করা উচিত এবং ক্র্যাশ না করে জীবিত থাকতে হবে এবং সংস্থানগুলি খুঁজে পাওয়া উচিত।

কেন আমি ঠিক তা নিশ্চিত নই, তবে যখন গ্রেডল টাস্কটি এভাবে চালিত হয় তখন সংস্থানগুলি পাওয়া যায়। যখন কোনও অ্যাপ্লিকেশন চালনার কনফিগারেশন ব্যবহৃত হয় (বর্তমানে গৃহীত উত্তরের মতো কোনও পরিবর্তন ছাড়াই) এটি ক্র্যাশ হয়ে যায় কারণ এটি সংস্থানগুলি খুঁজে পায় না।


0

আমার অ্যান্ড্রয়েড প্রকল্প নেই। আমার সমাধানটি জাভা বিল্ড পাথ-> গ্রন্থাগারগুলিকে ক্লাস ফোল্ডার হিসাবে সম্পদ ফোল্ডার যুক্ত করা। এটিকে অন্যান্য প্রকল্পে অন্তর্ভুক্ত করতে অতিরিক্তভাবে জাভা বিল্ড পাথ-> অর্ডার এবং এক্সপোর্টে সম্পদ ফোল্ডারটি চেক করুন।



0

ইন্টেলিজজে আমার একই সমস্যা ছিল এবং আমি অ্যান্ড্রয়েডের জন্য লিবিজিডিএক্স প্রকল্পটি তৈরি করি নি (অ্যান্ড্রয়েড বিকল্পটি চেক হিসাবে চিহ্নিত করা হয়নি) এবং আমি এখনও একই ত্রুটি পেয়েছি। ওয়ার্কিং ডিরেক্টরিটিকে "/ android / સંપત્તિ /" এর সাথে সংযুক্ত করার পরিবর্তে এটিকে " / কোর / সম্পদ " এর সাথে যুক্ত করেছেন এবং এটি আমার পক্ষে ভাল কাজ করেছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.