이미 이 예제에 따라 양식을 테스트 양식을 만들었지만 적용 되지 않았습니다.
'expo init’를 한 후, 'expo eject’을 입력하고 분리했습니다.
'jar’파일을 사용하여 App.js에 응용 프로그램을 테스트하기 위해 기본 'jar’파일을 만들었습니다.

구현은 간단합니다.
jar 파일의 CreateAJarFile.class :
class CreateAJarFile {
public static void main(String args[]) {
System.out.println("We got test");
}
}
bild.gradle (앱) :
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation files('libs/myJarFile.jar')
Android를 적용한 후에 모듈을 Apps.js에 작성했습니다.
android / app / src / main / java / com / myjarfile

CreateAJarFile.java :
package com.myjarfile;
import android.widget.Toast;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import java.util.Map;
import java.util.HashMap;
public class CreateAJarFile extends ReactContextBaseJavaModule {
private static final String DURATION_SHORT_KEY = "SHORT";
private static final String DURATION_LONG_KEY = "LONG";
public CreateAJarFile(ReactApplicationContext reactContext) {
super(reactContext);
}
@Override
public String getName() {
return "CreateAJar";
}
@Override
public Map<String, Object> getConstants() {
final Map<String, Object> constants = new HashMap<>();
constants.put(DURATION_SHORT_KEY, Toast.LENGTH_SHORT);
constants.put(DURATION_LONG_KEY, Toast.LENGTH_LONG);
return constants;
}
@ReactMethod
public void show() {
System.out.println("We got test");
}
}
CreateAJarFilePackage.java :
package com.myjarfile;
import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CreateAJarFilePackage implements ReactPackage {
@Override
public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
return Collections.emptyList();
}
@Override
public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
List<NativeModule> modules = new ArrayList<>();
modules.add(new CreateAJarFile(reactContext));
return modules;
}
}
CreateAJar.js :
import { NativeModules } from "react-native";
const { CreateAJar } = NativeModules;
export default CreateAJar;
android / app / src / main / java / host / exp / exponent / MainApplication.java
import com.myjarfile.CreateAJarFilePackage;
...
public List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
// Add your own packages here!
// TODO: add native modules!
// Needed for `react-native link`
// new MainReactPackage()
new CreateAJarFilePackage());
}
이런 모듈을 만들어 추가하고 App.js에서 테스트했습니다.
import CreateAJar from "./android/app/src/main/java/com/myjarfile/CreateAJar";
export default class App extends React.Component {
...
this.jarfunc = this.jarfunc.bind(this);
...
jarfunc() {
CreateAJar.show();
}
...
return (
<View style={styles.container}>
<Text>Test</Text>
<Text>{this.jarfunc}</Text>
</View>
그러나 모듈과 기능을 모두 읽을 수 없습니다.
내가 만든 모듈을 'App.js’에 어떻게 적용합니까?